2.7. 통합 DNS 및 외부 CA를 루트 CA로 사용하여 배포에 대한 매개변수 설정

IdM 통합 DNS 솔루션을 사용하는 환경에서 외부 CA를 루트 CA로 설치하기 위한 인벤토리 파일을 구성하려면 이 절차를 완료합니다.

참고

이 절차의 인벤토리 파일은 INI 형식을 사용합니다. 또는 YAML 또는 JSON 형식을 사용할 수 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리를 생성합니다.

    $ mkdir MyPlaybooks
  2. ~/MyPlaybooks/inventory 파일을 만듭니다.
  3. 편집할 인벤토리 파일을 엽니다. IdM 서버로 사용하려는 호스트의 정규화된 도메인 이름(FQDN)을 지정합니다. FQDN 이 다음 기준을 충족하는지 확인합니다.

    • 영숫자 및 하이픈(-)만 허용됩니다. 예를 들어 밑줄은 허용되지 않으며 DNS 오류가 발생할 수 있습니다.
    • 호스트 이름은 모두 소문자여야 합니다.
  4. IdM 도메인 및 영역 정보를 지정합니다.
  5. 다음 옵션을 추가하여 통합 DNS를 사용할 것을 지정합니다.

    ipaserver_setup_dns=yes
  6. DNS 전달 설정을 지정합니다. 다음 옵션 중 하나를 선택합니다.

    • 설치 프로세스에서 /etc/resolv.conf 파일의 forwarders를 사용하도록 하려면 ipaserver_auto_forwarders=yes 옵션을 사용합니다. /etc/resolv.conf 파일에 지정된 이름 서버가 localhost 127.0.0.1 주소이거나 가상 프라이빗 네트워크에 있고 사용 중인 DNS 서버는 일반적으로 공용 인터넷에서 연결할 수 없는 경우 이 옵션을 사용하지 않는 것이 좋습니다.
    • ipaserver_forwarders 옵션을 사용하여 전달자를 수동으로 지정합니다. 설치 프로세스에서는 설치된 IdM 서버의 /etc/named.conf 파일에 전달자 IP 주소를 추가합니다.
    • ipaserver_no_forwarders=yes 옵션을 사용하여 대신 사용할 루트 DNS 서버를 구성합니다.

      참고

      DNS 전달자가 없으면 환경이 격리되고 인프라의 다른 DNS 도메인의 이름은 확인되지 않습니다.

  7. DNS 역방향 레코드 및 영역 설정을 지정합니다. 다음 옵션 중에서 선택합니다.

    • ipaserver_allow_zone_overlap=yes 옵션을 사용하여 영역이 이미 확인 가능한 경우에도 (reverse) 영역을 생성할 수 있습니다.
    • ipaserver_reverse_zones 옵션을 사용하여 역방향 영역을 수동으로 지정합니다.
    • 설치 프로세스가 역방향 DNS 영역을 생성하지 않도록 하려면 ipaserver_no_reverse=yes 옵션을 사용합니다.

      참고

      IdM을 사용하여 역방향 영역을 관리하는 것은 선택 사항입니다. 대신 외부 DNS 서비스를 사용할 수 있습니다.

  8. adminDirectory Manager 의 암호를 지정합니다. Ansible Vault를 사용하여 암호를 저장하고 플레이북 파일에서 Vault 파일을 참조합니다. 또는 덜 안전한 경우 인벤토리 파일에서 직접 암호를 지정합니다.
  9. (선택 사항) IdM 서버에서 사용할 사용자 지정 firewalld 영역을 지정합니다. 사용자 지정 영역을 설정하지 않으면 IdM에서 해당 서비스를 기본 firewalld 영역에 추가합니다. 사전 정의된 기본 영역은 public 입니다.

    중요

    지정된 firewalld 영역이 있어야 하며 영구적으로 있어야 합니다.

    필수 서버 정보가 있는 인벤토리 파일의 예(암호 제외)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    [...]

    필수 서버 정보가 있는 인벤토리 파일의 예(암호 포함)

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    
    [...]

    사용자 지정 firewalld 영역이 있는 인벤토리 파일의 예

    [ipaserver]
    server.idm.example.com
    
    [ipaserver:vars]
    ipaserver_domain=idm.example.com
    ipaserver_realm=IDM.EXAMPLE.COM
    ipaserver_setup_dns=yes
    ipaserver_auto_forwarders=yes
    ipaadmin_password=MySecretPassword123
    ipadm_password=MySecretPassword234
    ipaserver_firewalld_zone=custom zone
    
    [...]

  10. 설치의 첫 번째 단계에 대한 플레이북을 생성합니다. CSR(인증서 서명 요청)을 생성하고 컨트롤러에서 관리 노드로 복사하는 지침을 입력합니다.

    ---
    - name: Playbook to configure IPA server Step 1
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_ca: yes
    
      roles:
      - role: ipaserver
        state: present
    
      post_tasks:
      - name: Copy CSR /root/ipa.csr from node to "{{ groups.ipaserver[0] + '-ipa.csr' }}"
        fetch:
          src: /root/ipa.csr
          dest: "{{ groups.ipaserver[0] + '-ipa.csr' }}"
          flat: yes
  11. 설치의 마지막 단계에 대해 다른 플레이북을 생성합니다.

    ---
    - name: Playbook to configure IPA server Step -1
      hosts: ipaserver
      become: true
      vars_files:
      - playbook_sensitive_data.yml
      vars:
        ipaserver_external_cert_files: "/root/chain.crt"
    
      pre_tasks:
      - name: Copy "{{ groups.ipaserver[0] + '-chain.crt' }}" to /root/chain.crt on node
        copy:
          src: "{{ groups.ipaserver[0] + '-chain.crt' }}"
          dest: "/root/chain.crt"
          force: yes
    
      roles:
      - role: ipaserver
        state: present

추가 리소스

  • 전달 정책 기본 설정은 ipa-dns-install(1) 매뉴얼 페이지의 --forward-policy 설명을 참조하십시오.
  • ipaserver 역할에서 사용하는 DNS 변수에 대한 자세한 내용은 /usr/share/doc/ansible-freeipa 디렉터리의 README-server.md 파일의 DNS 변수 섹션을 참조하십시오.
  • 인벤토리 파일에 대한 자세한 내용은 인벤토리 빌드 방법을 참조하십시오.