5장. Ansible 플레이북을 사용하여 IdM을 관리하기 위한 환경 준비
Red Hat Ansible Engine으로 작업할 때 IdM(Identity Management)을 관리하는 시스템 관리자는 다음을 수행하는 것이 좋습니다.
- 홈 디렉터리에 있는 Ansible 플레이북 전용 하위 디렉터리를 유지합니다(예: ~/MyPlaybooks ).
-
/usr/share/doc/ansible-freeipa/*
및/usr/share/doc/rhel-system-roles/*
디렉터리 및 하위 디렉터리에서 샘플 Ansible 플레이북을 ~/MyPlaybooks 디렉터리에 복사 및 조정합니다. - ~/MyPlaybooks 디렉터리에 인벤토리 파일을 포함합니다.
이 방법을 사용하면 모든 플레이북을 한 곳에서 찾을 수 있습니다.
관리 노드에서 root
권한을 호출하지 않고 ansible-freeipa
플레이북을 실행할 수 있습니다. 예외에는 ipaserver
,ipareplica
,ipaclient
,ipasmartcard_server
,ipasmartcard_client
및 ipabackup
ansible-freeipa
역할을 사용하는 플레이북이 포함됩니다. 이러한 역할에는 디렉터리 및 dnf
소프트웨어 패키지 관리자에 대한 권한이 필요합니다.
Red Hat Enterprise Linux IdM 설명서의 플레이북은 다음과 같은 보안 구성 을 가정합니다.
-
IdM
admin
은 관리 노드의 원격 Ansible 사용자입니다. -
Ansible 자격 증명 모음에 암호화된 IdM
관리자
암호를 저장합니다. - 암호 파일에 Ansible 자격 증명 모음을 보호하는 암호를 저장했습니다.
- 로컬 ansible 사용자를 제외한 모든 사용자에게 vault 암호 파일에 대한 액세스를 차단합니다.
- vault 암호 파일을 정기적으로 제거하고 다시 생성합니다.
대체 보안 구성 도 고려하십시오.
5.1. Ansible 플레이북을 사용하여 IdM 관리를 위해 제어 노드 및 관리형 노드 준비
Ansible 플레이북을 저장하고 실행하는 데 사용할 수 있도록 ~/MyPlaybooks 디렉터리를 생성하고 구성하려면 다음 절차를 따르십시오.
사전 요구 사항
- 관리 노드, server.idm.example.com 및 replica.idm.example.com 에 IdM 서버를 설치했습니다.
- 제어 노드에서 직접 관리 노드 server.idm.example.com 및 replica.idm.example.com 에 로그인할 수 있도록 DNS 및 네트워킹을 구성했습니다.
-
IdM
관리자
암호를 알고 있습니다.
절차
~/MyPlaybooks/ 디렉터리로 변경합니다.
$ cd ~/MyPlaybooks
다음 콘텐츠를 사용하여 ~/MyPlaybooks/ansible.cfg 파일을 생성합니다.
[defaults] inventory = /home/your_username/MyPlaybooks/inventory remote_user = admin
다음 콘텐츠를 사용하여 ~/MyPlaybooks/inventory 파일을 만듭니다.
[eu] server.idm.example.com [us] replica.idm.example.com [ipaserver:children] eu us
이 구성은 해당 위치에 있는 호스트에 대해 eu 및 us 의 두 개의 호스트 그룹을 정의합니다. 또한 이 구성은 eu 및 us 그룹의 모든 호스트가 포함된 ipaserver 호스트 그룹을 정의합니다.
선택 사항: SSH 공개 및 개인 키를 생성합니다. 테스트 환경에서 액세스를 단순화하려면 개인 키에 암호를 설정하지 마십시오.
$ ssh-keygen
SSH 공개 키를 각 관리 노드의 IdM
관리자
계정에 복사합니다.$ ssh-copy-id admin@server.idm.example.com $ ssh-copy-id admin@replica.idm.example.com
이러한 명령을 실행하려면 IdM
관리자
암호를 입력해야 합니다.vault 암호가 포함된 password_file 파일을 생성합니다.
redhat
파일을 수정하려면 권한을 변경합니다.
$ chmod 0600 password_file
secret.yml Ansible vault를 생성하여 IdM
관리자
암호를 저장합니다.vault 암호를 저장하도록 password_file 을 구성합니다.
$ ansible-vault create --vault-password-file=password_file secret.yml
메시지가 표시되면 secret.yml 파일의 내용을 입력합니다.
ipaadmin_password: Secret123
플레이북에서 암호화된 ipaadmin_password
를 사용하려면 vars_file
지시문을 사용해야 합니다. 예를 들어 IdM 사용자를 삭제하는 간단한 플레이북은 다음과 같습니다.
--- - name: Playbook to handle users hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Delete user robot ipauser: ipaadmin_password: "{{ ipaadmin_password }}" name: robot state: absent
플레이북을 실행할 때 --vault-password-file=password_file옵션을 추가하여 Ansible에 vault 암호를 사용하여
의 암호를 해독하도록 지시합니다. 예를 들어 다음과 같습니다.
ipaadmin_password
_password
ansible-playbook -i inventory --vault-password-file=password_file del-user.yml
보안상의 이유로 각 세션 종료 시 vault 암호 파일을 제거하고 각 새 세션이 시작될 때 6-8단계를 반복합니다.