32.6. Ansible을 사용하여 IdM에 CNAME 레코드가 여러 개 있는지 확인
Canonical Name record(CNAME 레코드)는 하나의 도메인 이름, 별칭을 다른 이름, 표준 이름에 매핑하는 DNS(Domain Name System)의 리소스 레코드 유형입니다.
단일 IP 주소(예: FTP 서비스 및 웹 서비스)에서 여러 서비스를 실행할 때 CNAME 레코드가 유용할 수 있습니다. 각각 다른 포트에서 실행됩니다.
Ansible 플레이북을 사용하여 IdM DNS에 여러 CNAME 레코드가 있는지 확인하려면 다음 절차를 따르십시오. 아래 절차에서 사용되는 예제에서 host03 은 HTTP 서버와 FTP 서버입니다. IdM 관리자는 idm.example.com 영역에 host03 A 레코드에 대한 Cryostat 및 ftp CNAME 레코드가 있는지 확인합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
freeipa.ansible_freeipa컬렉션을 설치했습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - idm.example.com 영역이 존재하며 IdM DNS에서 관리합니다. IdM DNS에 기본 DNS 영역을 추가하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 IdM DNS 영역 관리를 참조하십시오.
- host03 A 레코드는 idm.example.com 영역에 있습니다.
프로세스
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecord디렉토리로 이동합니다.$ cd /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/dnsrecordensure-CNAME-record-is-present.yml Ansible 플레이북 파일의 사본을 만듭니다. 예를 들면 다음과 같습니다.
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml- 편집을 위해 ensure-CNAME-record-is-present-copy.yml 파일을 엽니다.
freeipa.ansible_freeipa.ipadnsrecord작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
선택 사항: 플레이
이름으로제공된 설명을 조정합니다. -
ipaadmin_password변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
zone_name변수를 idm.example.com 으로 설정합니다. records변수 섹션에서 다음 변수와 값을 설정합니다.-
name변수를 Cryostat로 설정합니다. -
cname_hostname변수를 host03 으로 설정합니다. -
name변수를 ftp 로 설정합니다. -
cname_hostname변수를 host03 으로 설정합니다.
현재 예에 대해 수정된 Ansible 플레이북 파일입니다.
-
--- - name: Ensure that 'www.idm.example.com' and 'ftp.idm.example.com' CNAME records point to 'host03.idm.example.com'. hosts: ipaserver become: true gather_facts: false tasks: - freeipa.ansible_freeipa.ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" zone_name: idm.example.com records: - name: www cname_hostname: host03 - name: ftp cname_hostname: host03-
선택 사항: 플레이
- 파일을 저장합니다.
Playbook을 실행합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.yml