28.6. Ansible を使用して IdM に複数の CNAME レコードを存在させる手順

Canonical Name レコード (CNAME レコード) は、DNS (Domain Name System) のリソースレコードの一種で、別の名前 (CNAME) にドメイン名、エイリアスをマッピングします。

CNAME レコードは、FTP サービスと Web サービスがそれぞれ別のポートで実行されている場合など、1 つの IP アドレスから複数のサービスを実行する場合に、役立つ可能性があります。

本セクションでは、Identity Management (IdM) 管理者が Ansible Playbook を使用して、IdM DNS に複数の CNAME レコードを追加する方法を説明します。以下の手順で使用する例では、host03 は HTTP サーバーと FTP サーバーの両方として機能します。IdM 管理者は、idm.example.com ゾーンに host03 A レコードの www および ftp CNAME レコードを追加します。

前提条件

  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。これは、この手順の内容を実行するホストです。
  • IdM 管理者パスワードが分かっている。
  • idm.example.com ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法は、「Ansible Playbook を使用した IdM DNS ゾーンの管理」を参照してください。
  • host03 A レコードが idm.example.com ゾーンに存在している。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. インベントリーファイルを開き、設定する IdM サーバーが [ipaserver] セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するよう指示するには、以下を入力します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook ファイル (ensure-CNAME-record-is-present.yml) のコピーを作成します。以下に例を示します。

    $ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml
  4. ensure-CNAME-record-is-present-copy.yml ファイルを開いて編集します。
  5. ipadnsrecord タスクセクションで以下の変数を設定して、ファイルを調整します。

    • (任意) Play の name で提示された説明を調整します。
    • ipaadmin_password 変数は IdM 管理者パスワードに設定します。
    • zone_name 変数は idm.example.com に設定します。
    • record 変数セクションで、以下の変数および値を設定します。

      • name 変数は www に設定します。
      • cname_hostname 変数は host03 に設定します。
      • name 変数は ftp に設定します。
      • cname_hostname 変数は host03 に設定します。

      以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Ensure that 'www.idm.example.com' and 'ftp.idm.example.com' CNAME records point to 'host03.idm.example.com'.
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      - ipadnsrecord:
          ipaadmin_password: Secret123
          zone_name: idm.example.com
          records:
          - name: www
            cname_hostname: host03
          - name: ftp
            cname_hostname: host03
  6. ファイルを保存します。
  7. Playbook を実行します。

    $ ansible-playbook -v -i inventory.file ensure-CNAME-record-is-present.yml

関連情報

  • ansible-freeipa ipadnsrecord モジュールの Ansible Playbook の他のサンプルは、/usr/share/doc/ansible-freeipa/ ディレクトリーの README-dnsrecord.md Markdown ファイルで確認できます。このファイルには ipadnsrecord 変数の定義も含まれます。
  • /usr/share/doc/ansible-freeipa/playbooks/dnsrecord ディレクトリーで、ipadnsrecord モジュール向けの Ansible Playbook のサンプルを確認できます。