17.2. Ansible 플레이북을 사용하여 DNS 정보로 IdM 호스트 항목이 있는지 확인

Ansible 플레이북을 사용하여 IdM(Identity Management)에 호스트 항목이 있는지 확인하려면 다음 절차를 따르십시오. 호스트 항목은 FQDN( 정규화된 도메인 이름 ) 및 해당 IP 주소로 정의됩니다.

참고

Ansible이 없으면 ipa host-add 명령을 사용하여 IdM에 호스트 항목이 생성됩니다. IdM에 호스트를 추가하는 결과는 IdM에 호스트 상태가 됩니다. Ansible의 idempotence on idempotence 때문에 Ansible을 사용하여 호스트를 IdM에 추가하려면 호스트 상태를 present: state: present 로 정의하는 플레이북을 생성해야 합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.14 이상을 사용하고 있습니다.
    • Ansible 컨트롤러에 ansible-freeipa 패키지가 설치되어 있습니다.
    • 이 예제에서는 ~/MyPlaybook/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
    • 이 예제에서는 secret.yml Ansible 자격 증명 모음이 ipaadmin_password 를 저장한다고 가정합니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 ipaserver 를 이 파일에 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. 보장하려는 IdM에 있는 호스트의 FQDN( 정규화된 도메인 이름 )을 사용하여 Ansible 플레이북 파일을 생성합니다. 또한 IdM 서버가 DNS를 관리하도록 구성되어 호스트의 IP 주소를 알고 있는 경우 ip_address 매개 변수의 값을 지정합니다. 호스트가 DNS 리소스 레코드에 존재하려면 IP 주소가 필요합니다. 이 단계를 단순화하기 위해 /usr/share/doc/ansible-freeipa/playbooks/host/host-present.yml 파일에서 예제를 복사하고 수정할 수 있습니다. 다른 추가 정보를 포함할 수도 있습니다.

    ---
    - name: Host present
      hosts: ipaserver
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - name: Ensure host01.idm.example.com is present
        ipahost:
          ipaadmin_password: "{{ ipaadmin_password }}"
          name: host01.idm.example.com
          description: Example host
          ip_address: 192.168.0.123
          locality: Lab
          ns_host_location: Lab
          ns_os_version: CentOS 7
          ns_hardware_platform: Lenovo T61
          mac_address:
          - "08:00:27:E3:B1:2D"
          - "52:54:00:BD:97:1E"
          state: present
  3. 플레이북을 실행합니다.

    $ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-host-is-present.yml
참고

이 절차를 수행하면 IdM LDAP 서버의 호스트 항목이 생성되지만 IdM Kerberos 영역에 호스트를 등록하지 않습니다. 이를 위해 호스트를 IdM 클라이언트로 배포해야 합니다. 자세한 내용은 Ansible 플레이북을 사용하여 Identity Management 클라이언트 설치를 참조하십시오.

검증 단계

  1. IdM 서버에 admin으로 로그인합니다.

    $ ssh admin@server.idm.example.com
    Password:
  2. ipa host-show 명령을 입력하고 호스트 이름을 지정합니다.

    $ ipa host-show host01.idm.example.com
      Host name: host01.idm.example.com
      Description: Example host
      Locality: Lab
      Location: Lab
      Platform: Lenovo T61
      Operating system: CentOS 7
      Principal name: host/host01.idm.example.com@IDM.EXAMPLE.COM
      Principal alias: host/host01.idm.example.com@IDM.EXAMPLE.COM
      MAC address: 08:00:27:E3:B1:2D, 52:54:00:BD:97:1E
      Password: False
      Keytab: False
      Managed by: host01.idm.example.com

출력은 IdM에 host01.idm.example.com 이 있는지 확인합니다.