46.4. Ansible Playbook を使用した IdM ホストグループのネスト化
以下の手順に従って、Ansible Playbook を使用して、Identity Management (IdM) ホストグループにネスト化されたホストグループが存在することを確認します。
前提条件
- IdM 管理者パスワードを把握している。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
ansible-freeipaパッケージをインストールしている。 - この例では、~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成したことを前提としている。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - Ansible Playbook ファイルから参照するホストグループが IdM に存在する。詳細は、Ansible Playbook を使用して IdM ホストグループを存在させる手順 を参照してください。
手順
inventory.fileなどのインベントリーファイルを作成し、そのファイルで、ターゲットに設定する IdM サーバーのリストと合わせてipaserverを定義します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なホストグループ情報を使用して Ansible Playbook ファイルを作成します。ネストされたホストグループ A が、Ansible Playbook のホストグループ B に存在することを確認するには、
- ipahostgroup変数でname変数を使用して、ホストグループ B の名前を指定します。hostgroup変数でネスト化されたホストグループ A の名前を指定します。この手順は、/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-present-in-hostgroup.ymlファイルのサンプルをコピーして変更し、簡素化できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この Ansible Playbook は、database ホストグループに myqsl-server および oracle-server ホストグループが存在することを確認します。
action: member行は、Playbook が実行されると、databases グループ自体を IdM に追加しようとはしません。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
$ 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.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ipaserverに admin としてログインします。ssh admin@server.idm.example.com
$ ssh admin@server.idm.example.com Password: [admin@server /]$Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin の Kerberos チケットを要求します。
kinit admin
$ kinit admin Password for admin@IDM.EXAMPLE.COM:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ネスト化されたホストグループが含まれるホストグループに関する情報を表示します。
ipa hostgroup-show databases
$ ipa hostgroup-show databases Host-group: databases Member hosts: db.idm.example.com Member host-groups: mysql-server, oracle-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow mysql-server および oracle-server ホストグループは、databases ホストグループに存在します。