36장. RHEL 시스템 역할을 사용하여 RHEL 시스템을 Active Directory에 연결
조직에서 Microsoft AD(Active Directory)를 사용하여 사용자, 그룹 및 기타 리소스를 중앙에서 관리하는 경우 RHEL(Red Hat Enterprise Linux) 호스트를 이 AD에 결합할 수 있습니다. 예를 들어 AD 사용자는 RHEL에 로그인하여 RHEL 호스트에서 인증된 AD 사용자가 서비스를 사용할 수 있도록 할 수 있습니다. ad_integration
RHEL 시스템 역할을 사용하면 Red Hat Enterprise Linux 시스템을 AD(Active Directory) 도메인으로 통합을 자동화할 수 있습니다.
ad_integration
역할은 IdM(Identity Management) 환경 없이 직접 AD 통합을 사용하는 배포용입니다. IdM 환경의 경우 ansible-freeipa
역할을 사용합니다.
ad_integration
시스템 역할은 ansible-freeipa
패키지에 포함되어 있지 않습니다. rhel-system-roles
패키지의 일부입니다. Red Hat Enterprise Linux Server
서브스크립션이 연결된 시스템에 rhel-system-roles
를 설치할 수 있습니다.
36.1. ad_integration
RHEL 시스템 역할을 사용하여 RHEL을 Active Directory 도메인에 가입
ad_integration
RHEL 시스템 역할을 사용하여 RHEL을 AD(Active Directory) 도메인에 연결하는 프로세스를 자동화할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다. - 관리형 노드는 AD DNS 항목을 확인할 수 있는 DNS 서버를 사용합니다.
- 컴퓨터에 도메인에 연결할 수 있는 권한이 있는 AD 계정의 자격 증명입니다.
필요한 포트가 열려 있는지 확인합니다.
프로세스
중요한 변수를 암호화된 파일에 저장합니다.
자격 증명 모음을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-vault create ~/vault.yml
$ ansible-vault create ~/vault.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>
ansible-vault create
명령이 편집기를 열고 <key > : < value
> 형식으로 중요한 데이터를 입력합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow usr: administrator pwd: <password>
usr: administrator pwd: <password>
- 변경 사항을 저장하고 편집기를 종료합니다. Ansible은 자격 증명 모음의 데이터를 암호화합니다.
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow --- - name: Active Directory integration hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Join an Active Directory ansible.builtin.include_role: name: redhat.rhel_system_roles.ad_integration vars: ad_integration_user: "{{ usr }}" ad_integration_password: "{{ pwd }}" ad_integration_realm: "ad.example.com" ad_integration_allow_rc4_crypto: false ad_integration_timesync_source: "time_server.ad.example.com"
--- - name: Active Directory integration hosts: managed-node-01.example.com vars_files: - ~/vault.yml tasks: - name: Join an Active Directory ansible.builtin.include_role: name: redhat.rhel_system_roles.ad_integration vars: ad_integration_user: "{{ usr }}" ad_integration_password: "{{ pwd }}" ad_integration_realm: "ad.example.com" ad_integration_allow_rc4_crypto: false ad_integration_timesync_source: "time_server.ad.example.com"
예제 플레이북에 지정된 설정은 다음과 같습니다.
ad_integration_allow_rc4_crypto: <true|false>
역할이 관리 노드에서
AD-SUPPORT
암호화 정책을 활성화할지 여부를 구성합니다. 기본적으로 RHEL은 약한 RC4 암호화를 지원하지 않지만 AD의 Kerberos에 RC4가 필요한 경우ad_integration_allow_rc4_crypto: true
를 설정하여 이 암호화 유형을 활성화할 수 있습니다.Kerberos에서 AES 암호화를 사용하는 경우 이 변수를 생략하거나
false
로 설정합니다.ad_integration_timesync_source: <time_server>
-
시간 동기화에 사용할 NTP 서버를 지정합니다. Kerberos는 재생 공격을 방지하기 위해 AD 도메인 컨트롤러 및 도메인 멤버 간에 동기화된 시간이 필요합니다. 이 변수를 생략하면
ad_integration
역할은timesync
RHEL 시스템 역할을 활용하여 관리 노드에서 시간 동기화를 구성하지 않습니다.
플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.ad_integration/README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
$ ansible-playbook --ask-vault-pass --syntax-check ~/playbook.yml
이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-playbook --ask-vault-pass ~/playbook.yml
$ ansible-playbook --ask-vault-pass ~/playbook.yml
검증
관리 노드에서 AD 사용자(
관리자
)를 로컬로 사용할 수 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible managed-node-01.example.com -m command -a 'getent passwd administrator@ad.example.com'
$ ansible managed-node-01.example.com -m command -a 'getent passwd administrator@ad.example.com' administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.ad_integration/README.md
file -
/usr/share/doc/rhel-system-roles/ad_integration/
directory - Ansible vault