25.6. Ansible에서 일회성 암호 방법을 사용하여 IdM 클라이언트 설치
일회성 암호를 사용하여 관리자 권한을 사전 등록한 사용자와 호스트를 배포하는 사람 간에 관리자 권한을 분리할 때 IdM 클라이언트를 등록합니다.
IdM(Identity Management)의 새 호스트에 대해 일회성 암호(OTP)를 생성하고 이를 사용하여 IdM 도메인에 시스템을 등록할 수 있습니다. 이 예제에서는 다른 IdM 호스트에서 OTP를 생성한 후 Ansible을 사용하여 IdM 클라이언트를 설치합니다.
조직에 다른 권한이 있는 두 시스템 관리자가 있는 경우 IdM 클라이언트를 설치하는 이 방법을 사용할 수 있습니다.
- IdM 관리자의 인증 정보가 있는 사람입니다.
-
IdM 클라이언트가 되기 위해 호스트에 대한
root액세스 권한을 포함하여 필요한 Ansible 자격 증명이 있는 또 다른 방법입니다.
IdM 관리자는 OTP 암호가 생성되는 절차의 첫 번째 부분을 수행합니다. Ansible 관리자는 OTP가 IdM 클라이언트를 설치하는 데 사용되는 절차의 나머지 부분을 수행합니다.
사전 요구 사항
-
IdM
관리자인증 정보 또는 최소한호스트 등록권한과 IdM에 DNS 레코드를 추가할 수 있는 권한이 있습니다. - IdM 클라이언트를 설치할 수 있도록 Ansible 관리 노드에 사용자 에스컬레이션 방법을 구성했습니다.
- Ansible 제어 노드가 RHEL 8.7 또는 이전 버전에서 실행 중인 경우 Ansible 제어 노드에 패키지를 설치할 수 있어야 합니다.
다음 요구 사항을 충족하도록 Ansible 제어 노드를 구성했습니다.
- Ansible 버전 2.15 이상을 사용하고 있습니다.
-
ansible-freeipa패키지가 설치되어 있습니다. - 이 예제에서는 ~/MyPlaybooks/ 디렉터리에서 IdM 서버의 FQDN(정규화된 도메인 이름)을 사용하여 Ansible 인벤토리 파일을 생성했다고 가정합니다.
-
이 예제에서는 secret.yml Ansible vault가
ipaadmin_password를 저장하고 secret.yml 파일을 보호하는 암호를 저장하는 파일에 대한 액세스 권한이 있다고 가정합니다.
-
freeipa.ansible_freeipa모듈이 실행되는 대상 노드인 대상 노드는 IdM 도메인의 일부입니다. IdM 클라이언트, 서버 또는 복제본입니다. - 관리형 노드는 고정 IP 주소와 작업 패키지 관리자가 있는 Red Hat Enterprise Linux 10 시스템입니다.
프로세스
호스트 등록권한이 있고 DNS 레코드를 추가할 수 있는 권한이 있는 역할을 사용하여 IdM 사용자로 IdM 호스트에SSH를 실행하십시오.$ ssh admin@server.idm.example.com새 클라이언트에 대한 OTP를 생성합니다.
[admin@server ~]$ ipa host-add client.idm.example.com --ip-address=172.25.250.11 --random -------------------------------------------------- Added host "client.idm.example.com" -------------------------------------------------- Host name: client.idm.example.com Random password: W5YpARl=7M.n Password: True Keytab: False Managed by: server.idm.example.com--ip-address= <your_host_ip_address > 옵션은 지정된 IP 주소를 사용하여 IdM DNS에 호스트를 추가합니다.
IdM 호스트를 종료합니다.
$ exit logout Connection to server.idm.example.com closed.ansible 컨트롤러에서 임의의 암호를 포함하도록 인벤토리 파일을 업데이트합니다.
[...] [ipaclients] client.idm.example.com [ipaclients:vars] ipaclient_domain=idm.example.com ipaclient_otp=W5YpARl=7M.n [...]플레이북을 실행하여 클라이언트를 설치합니다.
$ ansible-playbook -i inventory install-client.yml