19.4. Ansible Playbook を使用した IdM ホストグループのネスト化
以下の手順に従って、Ansible Playbook を使用して、Identity Management (IdM) ホストグループにネスト化されたホストグループが存在することを確認します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
freeipa.ansible_freeipaコレクションがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - Ansible Playbook ファイルから参照するホストグループが IdM に存在する。詳細は、Ansible Playbook を使用して IdM ホストグループが存在する状態にする を参照してください。
手順
必要なホストグループの情報を含む Ansible Playbook ファイルを作成します。
-
ネストされるホストグループ A がホストグループ B 内に存在する状態にするには、Ansible Playbook で、
freeipa.ansible_freeipa.ipahostgroupタスクの変数の中にあるname変数を使用して、ホストグループ B の名前を指定します。 -
hostgroup変数でネスト化されたホストグループ A の名前を指定します。
このステップを簡略化するために、
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-present-in-hostgroup.ymlファイル内の例をコピーして変更できます。--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure hosts and hostgroups are present in existing databases hostgroup - freeipa.ansible_freeipa.ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases hostgroup: - mysql-server - oracle-server action: memberこの Ansible Playbook は、database ホストグループに myqsl-server および oracle-server ホストグループが存在する状態にします。
action: member行は、Playbook が実行されると、databases グループ自体を IdM に追加しようとはしません。-
ネストされるホストグループ A がホストグループ B 内に存在する状態にするには、Ansible Playbook で、
Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-or-hostgroups-are-present-in-hostgroup.yml
検証
ipaserverにadminとしてログインします。$ ssh admin@server.idm.example.com Password: [admin@server /]$admin用の Kerberos チケットを要求します。$ kinit admin Password for admin@IDM.EXAMPLE.COM:ネスト化されたホストグループが含まれるホストグループに関する情報を表示します。
$ ipa hostgroup-show databases Host-group: databases Member hosts: db.idm.example.com Member host-groups: mysql-server, oracle-server
mysql-server および oracle-server ホストグループは、databases ホストグループに存在します。