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*
$ *touch inventory.file*Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、証明書を要求するホストを定義します。以下に例を示します。
[webserver] server.idm.example.com
[webserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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 ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
- ファイルを保存します。
Playbook を実行します。
*ansible-playbook -i inventory.file request-certificate.yml*
$ *ansible-playbook -i inventory.file request-certificate.yml*Copy to Clipboard Copied! Toggle word wrap Toggle overflow