15.5. Ansible을 사용하여 IdM 복제본 다시 초기화
복제본이 장기간 오프라인 상태이거나 데이터베이스가 손상된 경우 다시 초기화할 수 있습니다. 업데이트된 데이터 세트를 사용하여 복제본을 다시 시작합니다. 예를 들어 백업에서 권한 있는 복원이 필요한 경우 다시 초기화할 수 있습니다.
복제 업데이트와 달리 복제본에서 변경된 항목만 서로 다시 보내면 전체 데이터베이스를 새로 고칩니다.In contrast to replication updates, during which replicas only send changed entries to each other, reinitialization refreshes the whole database.
명령을 실행하는 로컬 호스트는 reinitialized 복제본입니다. 데이터를 가져올 복제본을 지정하려면 direction
옵션을 사용합니다.
Ansible 플레이북을 사용하여 server.idm.example.com 의 replica.idm.example.com 에서 도메인
데이터를 다시 초기화하려면 다음 절차를 따르십시오.
사전 요구 사항
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.14 이상을 사용하고 있습니다.
-
Ansible 컨트롤러에
ansible-freeipa
패키지가 설치되어 있습니다. - 이 예제에서는 ~/MyPlaybook/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password
를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
ansible-freeipa
모듈이 실행되는 노드인 대상 노드는 IdM 도메인의 일부인 IdM 클라이언트, 서버 또는 복제본입니다.
절차
~/MyPlaybooks/ 디렉터리로 이동합니다.
$ cd ~/MyPlaybooks/
ansible-freeipa
패키지에서 제공하는reinitialize-topologysegment.yml
Ansible 플레이북 파일을 복사합니다.$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/reinitialize-topologysegment.yml reinitialize-topologysegment-copy.yml
-
편집할
reinitialize-topologysegment-copy.yml
파일을 엽니다. ipatopologysegment
섹션에서 다음 변수를 설정하여 파일을 조정합니다.-
ipaadmin_password
변수 값이 secret.yml Ansible vault 파일에 정의되어 있음을 나타냅니다. -
접미사
변수를domain
으로 설정합니다.ca
데이터를 다시 시작하는 경우 변수를ca
로 설정합니다. -
왼쪽
변수를 복제 계약의 왼쪽 노드로 설정합니다. -
올바른
변수를 복제 계약의 올바른 노드로 설정합니다. -
direction
변수를 reinitializing 데이터의 방향으로 설정합니다.왼쪽에서 오른쪽
방향은 데이터가 왼쪽 노드에서 오른쪽 노드로 전송됨을 의미합니다. state
변수가다시 초기화
되도록 설정되어 있는지 확인합니다.현재 예제에 대해 수정된 Ansible 플레이북 파일입니다.
--- - name: Playbook to handle topologysegment hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Reinitialize topology segment ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: domain left: server.idm.example.com right: replica.idm.example.com direction: left-to-right state: reinitialized
-
- 파일을 저장합니다.
Ansible 플레이북을 실행합니다. 플레이북 파일, secret.yml 파일을 보호하는 암호를 저장하는 파일 및 인벤토리 파일을 지정합니다.
$ ansible-playbook --vault-password-file=password_file -v -i inventory reinitialize-topologysegment-copy.yml
추가 리소스
- 복제 계약, 토폴로지 Suffixes 및 토폴로지 시나리오 설명
-
/usr/share/doc/ansible-freeipa/README-topology.md
-
/usr/share/doc/ansible-freeipa/playbooks/topology
의 샘플 플레이북