8.6. Ansible を使用して IdM に複数の CNAME レコードを存在させる手順
Canonical Name レコード (CNAME レコード) は、DNS (Domain Name System) のリソースレコードの一種で、別の名前 (CNAME) にドメイン名、エイリアスをマッピングします。
CNAME レコードは、FTP サービスと Web サービスがそれぞれ別のポートで実行されている場合など、1 つの IP アドレスから複数のサービスを実行する場合に、役立つ可能性があります。
Ansible Playbook を使用して、複数の CNAME レコードが IdM DNS に存在することを確認するには、以下の手順に従います。以下の手順で使用する例では、host03 は HTTP サーバーと FTP サーバーの両方として機能します。IdM 管理者は、idm.example.com ゾーンに host03 A レコードの www および ftp CNAME レコードを追加します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.14 以降を使用している。
-
Ansible コントローラーに
ansible-freeipa
パッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible vault に
ipaadmin_password
が保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipa
モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
- idm.example.com ゾーンが存在しており、IdM DNS が管理する。IdM DNS にプライマリー DNS ゾーンを追加する方法は、Ansible Playbook を使用した IdM DNS ゾーンの管理 を参照してください。
- host03 A レコードが idm.example.com ゾーンに存在している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsrecord
ディレクトリーに移動します。$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]
セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
Ansible Playbook ファイル (ensure-CNAME-record-is-present.yml) のコピーを作成します。以下に例を示します。
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml
- ensure-CNAME-record-is-present-copy.yml ファイルを開いて編集します。
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: "{{ ipaadmin_password }}" zone_name: idm.example.com records: - name: www cname_hostname: host03 - name: ftp cname_hostname: host03
-
(任意) Play の
- ファイルを保存します。
Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.yml
関連情報
-
/usr/share/doc/ansible-freeipa/
ディレクトリーのREADME-dnsrecord.md
ファイルを参照してください。 -
/usr/share/doc/ansible-freeipa/playbooks/dnsrecord
ディレクトリーのサンプルの Ansible Playbook を参照してください。