Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

29.7. 統合 DNS と、ルート CA としての外部 CA を使用したデプロイメントのパラメーターの設定

以下の手順に従って、IdM 統合 DNS ソリューションを使用する環境で、外部 CA を持つ IdM サーバーを root CA としてインストールするようにインベントリーファイルを設定します。

注記

この手順のインベントリーファイルは、INI形式を使用します。または、YAML 形式または JSON 形式を使用できます。

手順

  1. 編集するインベントリーファイルを開きます。IdM サーバーとして使用するホストの完全修飾ドメイン名 (FQDN) を指定します。FQDN が以下の基準を満たしていることを確認してください。

    • 英数字およびハイフン (-) のみが使用できる。たとえば、アンダーラインは使用できないため、DNS の障害が発生する原因となる可能性があります。
    • ホスト名がすべて小文字である。
  2. IdM ドメインおよびレルムの情報を指定します。
  3. 以下のオプションを追加して、統合 DNS を使用することを指定します。

    ipaserver_setup_dns=yes
  4. DNS 転送設定を指定します。以下のいずれかのオプションを選択します。

    • インストールプロセスで /etc/resolv.conf ファイルのフォワーダーを使用する場合は、ipaserver_auto_forwarders=yes を使用します。/etc/resolv.conf ファイルで指定する nameserver が localhost 127.0.0.1 アドレスである場合、または仮想プライベートネットワークにあり、使用している DNS サーバーが通常パブリックインターネットから到達できない場合は、このオプションを使用することが推奨されません。
    • ipaserver_forwarders を使用して、フォワーダーを手動で指定します。インストールプロセスにより、インストールした IdM サーバーの /etc/named.conf ファイルに、フォワーダーの IP アドレスが追加されます。
    • 代わりに使用する root DNS サーバーを設定する場合は、ipaserver_no_forwarders=yes オプションを使用します。

      注記

      DNS フォワーダーがないと、環境は分離され、インフラストラクチャー内の他の DNS ドメインからの名前は解決されません。

  5. DNS の逆引きレコードとゾーンの設定を指定します。次のいずれかのオプションを選択します。

    • ゾーンがすでに解決可能であっても、ipaserver_allow_zone_overlap=yes オプションを使用して (リバース) ゾーンの作成を許可します。
    • ipaserver_reverse_zones オプションを使用して、手動でリバースゾーンを指定します。
    • インストールプロセスで逆引き DNS ゾーンを作成したくない場合は、ipaserver_no_reverse=yes オプションを使用します。

      注記

      任意で、逆引きゾーンの管理に IdM を使用できます。代わりに、この目的で外部 DNS サービスを使用することもできます。

  6. adminDirectory Manager のパスワードを指定します。Ansible Vault を使用してパスワードを保存し、Playbook ファイルから Vault ファイルを参照します。あるいは、安全性は低くなりますが、インベントリーファイルにパスワードを直接指定します。
  7. (必要に応じて) 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
    
    [...]

  8. インストールの最初ステップ用の Playbook を作成します。証明書署名要求 (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
  9. インストールの最終ステップ用に、別の Playbook を作成します。

    ---
    - 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

関連情報

  • フォワードポリシーのデフォルト設定は、man ページの ipa-dns-install(1) に記載される --forward-policy の説明を参照してください。
  • ipaserver ロールが使用する DNS 変数の詳細は、/usr/share/doc/ansible-freeipa ディレクトリーの README-server.md ファイルにある DNS Variables セクションを参照してください。