5.3. ansible-freeipa의 인벤토리 플러그인
ansible-freeipa
freeipa
인벤토리 플러그인을 사용하여 ansible-freeipa
플레이북에서 사용할 IdM(Identity Management) 서버의 동적 인벤토리를 생성할 수 있습니다. 플러그인은 도메인의 IdM 서버에 대한 데이터를 수집하고 지정된 IdM 서버 역할 또는 역할이 할당된 역할만 선택합니다. ansible-playbook
명령과 함께 플러그인을 사용하려면 -i
옵션의 값을 freeipa
플러그인을 사용하는 인벤토리 파일로 설정합니다. 결과적으로 플레이북의 플레이는 인벤토리 파일에 지정된 역할이 있는 서버에 대해서만 실행됩니다.
아래 예제에서는 freeipa
플러그인을 사용하여 DNS 역할이 있는 토폴로지의 IdM 서버에서 bind
패키지 버전을 결정하는 방법을 설명합니다.
절차
inventory.yml 과 같은 파일을 생성하여 선택한 IdM 서버 역할 또는 역할을 기반으로 동적 인벤토리를 생성합니다. 예를 들어 IdM DNS 서버 역할이 있는 서버의 인벤토리를 생성하려면 다음을 수행합니다.
--- plugin: freeipa server: server.idm.example.com ipaadmin_password: Secret123 verify: ca.crt role: DNS server
-
server
는 스캔을 시작할 호스트의 정규화된 도메인 이름을 정의합니다. -
확인을
위해 서버 TLS 인증서 파일을 정의합니다. -
role
은 호스트가 반환되려면 호스트에 있어야 하는 모든 서버 역할을 정의합니다.
-
freeipa
인벤토리 플러그인으로 식별되는 IdM 서버에 대해 실행할 플레이북(예: bind-playbook.yml )을 생성합니다. 예를 들어 IdM DNS 서버에 설치된bind
패키지의 릴리스 버전을 확인하려면 다음을 수행합니다.--- - name: Check bind version hosts: ipaservers tasks: - name: Query bind package version package: name: bind state: present register: bind_version - name: Display bind release info debug: msg: "Bind release: {{ bind_version.results[0].version }}"
[선택 사항] 플러그인으로 식별되는 IdM 서버의 그래프 표시를 생성합니다.
$ ansible-inventory -i inventory.yml --graph @all: |--@ungrouped |--@ipaservers: | |--replica01.idm.example.com
Ansible 플레이북을 실행합니다. inventory.yml 파일을 인벤토리로 지정합니다.
$ ansible-playbook -i inventory.yml bind-playbook.yml [...] TASK [Display bind release info] ok: [10.0.193.174] => { "msg": "Bind release: 9.20.3" } [...]