19.8. Ansible Playbook を使用して IdM ホストグループを存在させない
ドメインからグループを統合したり、不要になったグループを削除したりする場合は、Ansible を使用して Identity Management (IdM) ホストグループを削除します。
Ansible を使用しない場合は、ipa hostgroup-del コマンドを使用してホストグループエントリーを IdM から削除します。IdM からホストグループを削除すると、IdM にホストグループが存在しない状態になります。Ansible は冪等性に依存しているので、Ansible を使用して IdM からホストグループを削除するには、ホストの状態を Absent (state: absent) として定義した Playbook を作成する必要があります。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
必要なホストグループ情報を使用して Ansible Playbook ファイルを作成します。このステップを簡略化するために、
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/user/ensure-hostgroup-is-absent.ymlファイルの例をコピーして変更できます。--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - Ensure host-group databases is absent freeipa.ansible_freeipa.ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases state: absentこの Playbook では、IdM から databases ホストグループを存在させないようにします。
state: absentは、IdM からホストグループが削除されていない限り、ホストグループの削除要求を意味します。Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hostgroup-is-absent.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 ipa: ERROR: databases: host group not found
databases ホストグループが IdM に存在しません。