18.6. Ansible 플레이북을 사용하여 IdM 호스트 그룹에 호스트가 없는지 확인

Ansible 플레이북을 사용하여 IdM(Identity Management)의 호스트 그룹에서 호스트가 없는지 확인하려면 다음 절차를 따르십시오.

사전 요구 사항

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 타겟할 IdM 서버 목록으로 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. 필요한 호스트 및 호스트 그룹 정보를 사용하여 Ansible 플레이북 파일을 생성합니다. ipahostgroup 변수의 name 매개 변수를 사용하여 호스트 그룹의 이름을 지정합니다. ipahostgroup 변수의 호스트 매개 변수를 사용하여 확인하려는 호스트 그룹이 없는 호스트의 이름을 지정합니다. 이 단계를 단순화하기 위해 /usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-are-hostgroups-are-in-hostgroup.yml 파일에서 예제를 복사하고 수정할 수 있습니다.

    ---
    - name: Playbook to handle hostgroups
      hosts: ipaserver
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      # Ensure host-group databases is absent
      - ipahostgroup:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: databases
          host:
          - db.idm.example.com
          action: member
          state: absent

    이 플레이북은 databases 호스트 그룹에서 db.idm.example.com 호스트가 없는지 확인합니다. action: member 행은 플레이북이 실행되면 databases 그룹 자체를 제거하려고 시도하지 않음을 나타냅니다.

  3. 플레이북을 실행합니다.

    $ ansible-playbook --vault-password-file=password_file -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. 관리자를 위한 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 호스트는 databases 호스트 그룹에 존재하지 않습니다.