16.6. Ansible Playbook を使用して IdM ホストグループにホストを存在させないようにする方法

本セクションでは、Ansible Playbook を使用して、Identity Management (IdM) のホストグループにホストがないことを確認する方法を説明します。

前提条件

手順

  1. inventory.file などのインベントリーファイル を作成し、ターゲットに設定する IdM サーバーの一覧と共に ipaserver を定義します。

    [ipaserver]
    server.idm.example.com
  2. 必要なホストおよびホストグループ情報を使用して Ansible Playbook ファイルを作成します。ipahostgroup 変数の name パラメーターを使用してホストグループの名前を指定します。ipahostgroup 変数の host パラメーターを使用することを確認するホストグループがないホストの名前を指定します。この手順を単純化するには、/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-absent-in-hostgroup.yml ファイルのサンプルをコピーして変更することができます。

    ---
    - name: Playbook to handle hostgroups
      hosts: ipaserver
      become: true
    
      tasks:
      # Ensure host-group databases is absent
      - ipahostgroup:
          ipaadmin_password: MySecret123
          name: databases
          host:
          - db.idm.example.com
          action: member
          state: absent

    この Playbook は、データベース ホストグループから db.idm.example.com ホストがないことを確認します。action: member 行は、Playbook が実行されると、データベース グループ自体の削除を試行しないことを示します。

  3. Playbook を実行します。

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-hosts-or-hostgroups-are-absent-in-hostgroup.yml

検証手順

  1. admin として ipaserver にログインします。

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. admin の Kerberos チケットを要求します。

    $ kinit admin
    Password for admin@IDM.EXAMPLE.COM:
  3. ホストグループと、そのホストグループに含まれるホストに関する情報を表示します。

    $ ipa hostgroup-show databases
      Host-group: databases
      Member host-groups: mysql-server, oracle-server

db.idm.example.com ホストは データベース ホストグループに存在しません。