32장. Ansible 플레이북을 사용하여 Identity Management 복제본 설치
Ansible 을 사용하여 시스템을 IdM 복제본으로 구성하여 IdM 도메인에 등록하고, 시스템이 도메인의 IdM 서버에서 IdM 서비스를 사용할 수 있도록 합니다.
배포는 ipareplica
Ansible 역할에 의해 관리됩니다. 이 역할은 자동 검색 모드를 사용하여 IdM 서버, 도메인 및 기타 설정을 식별할 수 있습니다. 그러나 계층과 같은 모델에 여러 복제본을 배포하는 경우 다른 복제본 그룹이 다른 시간에 배포되는 경우 각 그룹의 특정 서버 또는 복제본을 정의해야 합니다.
사전 요구 사항
- Ansible 제어 노드에 ansible-freeipa 패키지를 설치했습니다.
- 일반적인 Ansible 및 IdM 개념을 이해하고 있습니다.
- 배포에서 복제본 토폴로지를 계획했습니다.
32.1. IdM 복제본 설치를 위한 기본, 서버 및 클라이언트 변수 지정
IdM 복제본을 설치하기 위한 인벤토리 파일을 구성하려면 이 절차를 완료합니다.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.13 이상을 사용하고 있습니다.
-
Ansible 컨트롤러에
ansible-freeipa
패키지가 설치되어 있습니다.
절차
편집할 인벤토리 파일을 엽니다. IdM 복제본이 될 호스트의 FQDN(정규화된 도메인 이름)을 지정합니다. FQDN은 유효한 DNS 이름이어야 합니다.
-
숫자, 영문자 및 하이픈(
-
)만 허용됩니다. 예를 들어 밑줄은 허용되지 않으며 DNS 오류가 발생할 수 있습니다. 호스트 이름은 모두 소문자여야 합니다.
정의된 복제본의 FQDN만 있는 간단한 인벤토리 호스트 파일의 예
[ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...]
IdM 서버가 이미 배포되어 있고 IdM DNS 영역에 SRV 레코드가 올바르게 설정된 경우 스크립트에서 다른 모든 필수 값을 자동으로 검색합니다.
-
숫자, 영문자 및 하이픈(
선택 사항: 토폴로지를 설계하는 방법에 따라 인벤토리 파일에 추가 정보를 제공합니다.
- 시나리오 1
자동 검색을 방지하고
[ipareplicas]
섹션에 나열된 모든 복제본이 있는 경우 인벤토리 파일의[ipaservers]
섹션에 서버를 설정합니다.정의된 IdM 서버 및 복제본의 FQDN이 있는 인벤토리 호스트 파일의 예
[ipaservers] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...]
- 시나리오 2
또는 자동 검색을 방지하되 특정 서버로 특정 복제본을 배포하려는 경우 인벤토리 파일의
[ipareplicas]
섹션에서 특정 복제본의 서버를 개별적으로 설정합니다.특정 복제본에 대해 정의된 특정 IdM 서버가 있는 인벤토리 파일의 예
[ipaservers] server.idm.example.com replica1.idm.example.com [ipareplicas] replica2.idm.example.com replica3.idm.example.com ipareplica_servers=replica1.idm.example.com
위의 예에서
replica3.idm.example.com
은 이미 배포된replica1.idm.example.com
을 해당 복제 소스로 사용합니다.- 시나리오 3
하나의 배치에 여러 복제본을 배포하고 시간이 우려되는 경우 다중 계층 복제본 배포가 유용할 수 있습니다. 인벤토리 파일에 특정 복제본 그룹(예:
[ipareplicas_tier1]
및[ipareplicas_tier2]
)을 정의하고install-replica.yml
플레이북의 각 그룹에 대해 별도의 플레이를 설계합니다.복제본 계층이 정의된 인벤토리 파일 예
[ipaservers] server.idm.example.com [ipareplicas_tier1] replica1.idm.example.com [ipareplicas_tier2] replica2.idm.example.com \ ipareplica_servers=replica1.idm.example.com,server.idm.example.com
ipareplica_servers
의 첫 번째 항목이 사용됩니다. 두 번째 항목은 대체 옵션으로 사용됩니다. IdM 복제본을 배포하기 위해 여러 계층을 사용하는 경우 플레이북에서 별도의 작업을 통해 먼저 tier1에서 복제본을 배포한 다음 tier2에서 복제본을 복제해야 합니다.다른 복제본 그룹에 대해 다른 플레이가 있는 플레이북 파일의 예
--- - name: Playbook to configure IPA replicas (tier1) hosts: ipareplicas_tier1 become: true roles: - role: ipareplica state: present - name: Playbook to configure IPA replicas (tier2) hosts: ipareplicas_tier2 become: true roles: - role: ipareplica state: present
선택 사항:
firewalld
및 DNS에 대한 추가 정보를 제공합니다.- 시나리오 1
복제본에서 지정된
firewalld
영역을 사용하도록 하려면(예: 내부) 인벤토리 파일에서 지정할 수 있습니다. 사용자 지정 영역을 설정하지 않으면 IdM에서 서비스를 기본firewalld
영역에 추가합니다. 사전 정의된 기본 영역은public
입니다.중요지정된
firewalld
영역이 있어야 하며 영구적으로 있어야 합니다.사용자 지정
firewalld
영역이 있는 간단한 인벤토리 호스트 파일의 예[ipaservers] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...] [ipareplicas:vars] ipareplica_firewalld_zone=custom zone
- 시나리오 2
복제본에서 IdM DNS 서비스를 호스팅하려면 ipareplica_setup_dns=true 행을
[ipareplicas:vars]
섹션에 추가합니다. 또한 서버당 DNS 전달자를 사용할지 여부를 지정합니다.-
서버별 전달자를 구성하려면
ipareplica_forwarders
변수와[ipareplicas:vars]
섹션에 문자열 목록을 추가합니다(예: ipareplica_forwarders=192.0.2.1,192.0.2.2). -
서버별 전달자를 구성하지 않으려면
[ipareplicas:vars]
섹션에 다음 행을 추가합니다. ipareplica_no_forwarders=true. -
복제본의
/etc/resolv.conf
파일에 나열된 forwarders에 따라 서버별 전달자를 구성하려면ipareplica_auto_forwarders
변수를[ipareplicas:vars]
섹션에 추가합니다.
복제본에서 DNS 및 서버별 전달자를 설정하는 지침이 있는 인벤토리 파일의 예
[ipaservers] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...] [ipareplicas:vars] ipareplica_setup_dns=true ipareplica_forwarders=192.0.2.1,192.0.2.2
-
서버별 전달자를 구성하려면
- 시나리오 3
ipaclient_configure_dns_resolve
및ipaclient_dns_servers
옵션(사용 가능한 경우)을 사용하여 클러스터 배포를 단순화하여 DNS 확인 프로그램을 지정합니다. IdM 배포가 통합된 DNS를 사용하는 경우 특히 유용합니다.DNS 확인자를 지정하는 인벤토리 파일 스니펫:
[...] [ipaclient:vars] ipaclient_configure_dns_resolver=true ipaclient_dns_servers=192.168.100.1
참고ipaclient_dns_servers
목록에는 IP 주소만 포함되어야 합니다. 호스트 이름은 허용되지 않습니다.
추가 리소스
-
/usr/share/ansible/roles/ipareplica/README.md