6.9. Ansible を使用して IdM に DNS グローバルフォワーダーを存在させないようにする手順
以下の手順に従って、Ansible Playbook を使用して IdM で DNS グローバルフォワーダーを削除します。以下の手順では、IdM 管理者が、ポート 53
で、IP (Internet Protocol) v4 アドレス 8.8.6.6
および IP v6 アドレス 2001:4860:4860::8800
を持つ DNS グローバルフォワーダーが存在しないことを確認します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.14 以降を使用している。
-
Ansible コントローラーに
ansible-freeipa
パッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible vault に
ipaadmin_password
が保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipa
モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者パスワードを把握している。
手順
/usr/share/doc/ansible-freeipa/playbooks/dnsconfig
ディレクトリーに移動します。$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsconfig
インベントリーファイルを開き、設定する IdM サーバーが
[ipaserver]
セクションに記載されていることを確認します。たとえば、Ansible に対してserver.idm.example.com
を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
Ansible Playbook ファイル (
forwarders-absent.yml
) のコピーを作成します。以下に例を示します。$ cp forwarders-absent.yml ensure-absence-of-a-global-forwarder.yml
-
ensure-absence-of-a-global-forwarder.yml
ファイルを開いて編集します。 以下の変数を設定してファイルを調整します。
-
Playbook の
name
変数は、IdM DNS でグローバルフォワーダーを配置しない Playbook
の設定に変更します。 -
tasks
セクションで、タスクのname
をEnsure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53
に変更します。 ipadnsconfig
のforwarders
セクションで以下を行います。-
最初の
ip_address
の値は、グローバルフォワーダーの IPv4 アドレス8.8.6.6
. -
2 番目の
ip_address
の値は、グローバルフォワーダーの IPv6 アドレス (2001:4860:4860::8800
) に変更します。 -
port
の値が53
に設定されていることを確認します。
-
最初の
-
action
変数はmember
に設定します。 -
state
がabsent
に設定されていることを確認します。
今回の例で使用するように変更した Ansible Playbook ファイル:
--- - name: Playbook to ensure the absence of a global forwarder in IdM DNS hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the absence of a DNS global forwarder to 8.8.6.6 and 2001:4860:4860::8800 on port 53 ipadnsconfig: forwarders: - ip_address: 8.8.6.6 - ip_address: 2001:4860:4860::8800 port: 53 action: member state: absent
重要Playbook で
action: member
を使用せずにstate: absent
オプションだけを使用すると、その Playbook は失敗します。-
Playbook の
- ファイルを保存します。
Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-absence-of-a-global-forwarder.yml
関連情報
-
/usr/share/doc/ansible-freeipa/
ディレクトリーのREADME-dnsconfig.md
ファイル -
ipadnsconfig ansible-freeipa モジュールの
action: member
オプション