8.6. Ansible を使用して IdM に複数の CNAME レコードが存在する状態にする
Canonical Name レコード (CNAME レコード) は、DNS (Domain Name System) のリソースレコードの一種で、別の名前 (CNAME) にドメイン名、エイリアスをマッピングします。
CNAME レコードは、FTP サービスと Web サービスがそれぞれ別のポートで実行されている場合など、1 つの IP アドレスから複数のサービスを実行する場合に、役立つ可能性があります。
Ansible Playbook を使用して、IdM DNS に複数の CNAME レコードが存在する状態にするには、次の手順を実行します。以下の手順で使用する例では、host03 は HTTP サーバーと FTP サーバーの両方として機能します。IdM 管理者は、idm.example.com ゾーンの host03 A レコードの www および ftp CNAME レコードが存在する状態にします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.13 以降を使用している。
-
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
$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecordCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]セクションに記載されていることを確認します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (ensure-CNAME-record-is-present.yml) のコピーを作成します。以下に例を示します。
cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-CNAME-record-is-present-copy.yml ファイルを開いて編集します。
ipadnsrecordタスクセクションで以下の変数を設定して、ファイルを調整します。-
オプション:オプション: プレイの
nameによって提供される説明を調整します。 -
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
zone_name変数は idm.example.com に設定します。 records変数セクションで、以下の変数および値を設定します。-
name変数は www に設定します。 -
cname_hostname変数は host03 に設定します。 -
name変数は ftp に設定します。 -
cname_hostname変数は host03 に設定します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
オプション:オプション: プレイの
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow