16.4. certificate システムロールを使用して、証明書の発行前または発行後に実行するコマンドの指定
certificate
ロールでは、Ansible Core を使用して、証明書の発行または更新の前後にコマンドを実行できます。
以下の例では、管理者が www.example.com
の自己署名証明書を発行または更新する前に httpd
サービスを停止し、後で再起動します。
デフォルトでは、certmonger
は有効期限が切れる前に証明書の更新を自動的に試行します。これは、Ansible Playbook の auto_renew
パラメーターを no
に設定すると無効にできます。
前提条件
- Ansible Core パッケージがコントロールマシンにインストールされている。
-
Playbook を実行するシステムに
rhel-system-roles
パッケージがインストールされている。
手順
オプション:
inventory.file
などのインベントリーファイルを作成します。$ *touch inventory.file*
インベントリーファイルを開き、証明書を要求するホストを定義します。以下に例を示します。
[webserver] server.idm.example.com
Playbook ファイルを作成します (例:
request-certificate.yml
)。-
webserver
など、証明書を要求するホストを含むようにhosts
を設定します。 certificate_requests
変数を設定して以下を追加します。-
name
パラメーターを希望する証明書の名前 (mycert
など) に設定します。 -
dns
パラメーターをドメインに設定し、証明書に追加します (例:www.example.com
)。 -
ca
パラメーターを証明書を発行する際に使用する CA に設定します (例:self-sign
)。 -
この証明書を発行または更新する前に、
run_before
パラメーターを実行するコマンドに設定します (例:systemctl stop httpd.service
)。 -
この証明書を発行または更新した後に、
run_after
パラメーターを実行するコマンドに設定します (例:systemctl start httpd.service
)。
-
roles
の下にrhel-system-roles.certificate
ロールを設定します。以下は、この例の Playbook ファイルです。
--- - hosts: webserver vars: certificate_requests: - name: mycert dns: www.example.com ca: self-sign run_before: systemctl stop httpd.service run_after: systemctl start httpd.service roles: - rhel-system-roles.certificate
-
- ファイルを保存します。
Playbook を実行します。
$ *ansible-playbook -i inventory.file request-certificate.yml*
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.certificate/README.md
ファイルを参照してください。 -
ansible-playbook(1)
man ページを参照してください。