27장. Ansible 플레이북을 사용하여 Identity Management 클라이언트 설치

Ansible 을 사용하여 IdM(Identity Management) 클라이언트로 시스템을 구성하는 방법에 대해 자세히 알아보십시오. 시스템을 IdM 클라이언트로 구성하여 IdM 도메인에 등록하고, 시스템이 도메인의 IdM 서버에서 IdM 서비스를 사용할 수 있도록 합니다.

배포는 ipaclient Ansible 역할에 의해 관리됩니다. 기본적으로 이 역할은 자동 검색 모드를 사용하여 IdM 서버, 도메인 및 기타 설정을 식별합니다. Ansible 플레이북이 인벤토리 파일에서 지정된 설정을 사용하도록 역할을 수정할 수 있습니다.

사전 요구 사항

  • Ansible 제어 노드에 ansible-freeipa 패키지를 설치했습니다.
  • Ansible 및 IdM 개념을 이해할 수 있습니다.

    • Ansible 역할
    • Ansible 노드
    • Ansible 인벤토리
    • Ansible 작업
    • Ansible 모듈
    • Ansible 플레이 및 플레이북

27.1. 자동 검색 클라이언트 설치 모드에 대한 인벤토리 파일의 매개변수 설정

Ansible 플레이북을 사용하여 Identity Management 클라이언트를 설치하려면 인벤토리 파일에서 대상 호스트 매개 변수를 구성합니다(예: inventory/hosts ).

  • 호스트에 대한 정보
  • 작업 권한 부여

인벤토리 파일은 보유한 인벤토리 플러그인에 따라 여러 형식 중 하나일 수 있습니다. INI와 유사한 형식은 Ansible의 기본값 중 하나이며 아래 예제에서 사용됩니다.

참고

RHEL의 그래픽 사용자 인터페이스와 함께 스마트 카드를 사용하려면 Ansible 플레이북에 ipaclient_mkhomedir 변수를 포함해야 합니다.

사전 요구 사항

절차

  1. IdM 클라이언트가 될 호스트의 정규화된 호스트 이름(FQDN)을 지정합니다. 정규화된 도메인 이름은 유효한 DNS 이름이어야 합니다.

    • 숫자, 영문자 및 하이픈(-)만 허용됩니다. 예를 들어 밑줄은 허용되지 않으며 DNS 오류가 발생할 수 있습니다.
    • 호스트 이름은 모두 소문자여야 합니다. 대문자는 사용할 수 없습니다.

    IdM DNS 영역에 SRV 레코드가 올바르게 설정된 경우 스크립트에서 다른 모든 필수 값을 자동으로 검색합니다.

    클라이언트 FQDN이 정의된 간단한 인벤토리 호스트 파일의 예

    [ipaclients]
    client.idm.example.com
    [...]

  2. 클라이언트 등록 자격 증명을 지정합니다. 다음 인증 방법을 사용할 수 있습니다.

    • 클라이언트를 등록할 권한이 있는 사용자의 암호 입니다. 이는 기본 옵션입니다.

      • Ansible Vault를 사용하여 암호를 저장하고 플레이북 파일에서 Vault 파일을 참조하는 것이 좋습니다(예: install-client.yml ).

        Ansible Vault 파일의 인벤토리 파일 및 암호의 주체를 사용하는 플레이북 파일의 예

        - name: Playbook to configure IPA clients with username/password
          hosts: ipaclients
          become: true
          vars_files:
          - playbook_sensitive_data.yml
        
          roles:
          - role: ipaclient
            state: present

      • 더 안전하게 inventory/hosts 파일의 [ ipaclients:vars] 섹션에서 ipa admin _password 옵션을 사용하여 admin의 자격 증명을 제공하십시오. 또는 권한이 있는 다른 사용자를 지정하려면 사용자 이름에 ipaadmin_principal 옵션을 사용하고 암호에 ipaadmin_password 옵션을 사용합니다. inventory/hosts 인벤토리 파일 및 install-client.yml 플레이북 파일은 다음과 같습니다.

        인벤토리 호스트 파일 예

        [...]
        [ipaclients:vars]
        ipaadmin_principal=my_admin
        ipaadmin_password=Secret123

        인벤토리 파일에서 보안 주체 및 암호를 사용하는 플레이북의 예

        - name: Playbook to unconfigure IPA clients
          hosts: ipaclients
          become: true
        
          roles:
          - role: ipaclient
            state: true

    • 이전 등록의 클라이언트 키탭 이 계속 사용 가능한 경우.

      이 옵션은 시스템이 이전에 ID 관리 클라이언트로 등록된 경우 사용할 수 있습니다. 이 인증 방법을 사용하려면 #ipaclient_keytab 옵션의 주석을 제거하여 keytab을 저장하는 파일의 경로를 지정합니다(예: inventory/hosts[ipaclient:vars] 섹션).

    • 등록 중에 생성할 임의의 일회용 암호 (OTP)입니다. 이 인증 방법을 사용하려면 인벤토리 파일에서 ipaclient_use_otp=yes 옵션을 사용합니다. 예를 들어 inventory/hosts 파일의 [ipaclients:vars] 섹션에서 ipaclient_use_otp=yes 옵션의 주석을 달 수 있습니다. OTP를 사용하면 다음 옵션 중 하나를 지정해야 합니다.

      • 예를 들어 inventory/hosts 파일 [ipaclients:vars] 섹션에 ipaadmin_password 값을 제공하여 클라이언트 등록 권한이 있는 사용자의 암호입니다.
      • 예를 들어 inventory/hosts[ipaclients:vars] 섹션에 ipaadmin_keytab 의 값을 제공하여 admin keytab.
  3. [선택 사항] [선택 사항] ipaclient_configure_dns_resolveipaclient_dns_servers 옵션(사용 가능한 경우)을 사용하여 DNS 확인 프로그램을 지정하여 클러스터 배포를 단순화합니다. IdM 배포가 통합된 DNS를 사용하는 경우 특히 유용합니다.

    DNS 확인자를 지정하는 인벤토리 파일 스니펫:

    [...]
    [ipaclients:vars]
    ipaadmin_password: "{{ ipaadmin_password }}"
    ipaclient_domain=idm.example.com
    ipaclient_configure_dns_resolver=true
    ipaclient_dns_servers=192.168.100.1

    참고

    ipaclient_dns_servers 목록에는 IP 주소만 포함되어야 합니다. 호스트 이름은 허용되지 않습니다.

  4. RHEL 9.3부터 ipaclient_subid: true 옵션을 지정하여 IdM 수준에서 IdM 사용자에 대해 하위 범위를 구성할 수도 있습니다.

추가 리소스