26.3. Ansible を使用した非対称 Vault へのメンバーサービスの追加
以下の手順に従って、Ansible Playbook を使用してメンバーサービスをサービス Vault に追加し、これらすべてが Vault に保存されているシークレットを取得できるようにします。以下の手順で使用する例では、IdM の管理者は HTTP/webserver2.idm.example.com と HTTP/webserver3.idm.example.com のサービスプリンシパルを HTTP/webserver1.idm.example.com が所有する secret_vault Vault に追加します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
freeipa.ansible_freeipaコレクションがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - サービスシークレットを保存するための 非対称 Vault を作成 している。
手順
~/MyPlaybooks/ディレクトリーに移動します。
$ cd ~/MyPlaybooks/Ansible Playbook ファイル (data-archive-in-asymmetric-vault.yml) を作成します。以下に例を示します。
$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml add-services-to-an-asymmetric-vault.yml- data-archive-in-asymmetric-vault-copy.yml ファイルを編集のために開きます。
freeipa.ansible_freeipa.ipavaultタスクセクションで次の変数を設定して、ファイルを変更します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 -
name変数は Vault の名前 (例: secret_vault) に設定します。 -
service変数は Vault のサービス所有者に設定します (例: HTTP/webserver1.idm.example.com)。 -
services 変数を使用して、Vault シークレットにアクセスできる
servicesを定義します。 action変数はmemberに設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
--- - name: Tests hosts: ipaserver gather_facts: false vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - freeipa.ansible_freeipa.ipavault: ipaadmin_password: "{{ ipaadmin_password }}" name: secret_vault service: HTTP/webserver1.idm.example.com services: - HTTP/webserver2.idm.example.com - HTTP/webserver3.idm.example.com action: member-
- ファイルを保存します。
Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file add-services-to-an-asymmetric-vault.yml