第3章 Ansible Playbook で Identity Management レプリカのインストール
Ansible を使用してシステムを IdM レプリカとして設定すると、IdM ドメインに登録され、ドメインの IdM サーバーにある IdM サービスをシステムが使用できるようになります。
デプロイメントは、Ansible ロール ipareplica
で管理されます。このロールは、自動検出モードを使用して、IdM サーバー、ドメイン、およびその他の設定を識別できます。ただし、階層のような形で複数のレプリカをデプロイし、レプリカの各グループを異なるタイミングでデプロイする場合は、各グループに特定のサーバーまたはレプリカを定義する必要があります。
前提条件
- Ansible コントロールノードに ansible-freeipa パッケージがインストールされている。
- Ansible と IdM の一般的な概念を理解している。
- デプロイメント内のレプリカトポロジーを計画 した。
3.1. IdM レプリカをインストールするためのベース変数、サーバー変数、およびクライアント変数の指定
IdM レプリカをインストールするためのインベントリーファイルを設定するには、以下の手順を完了します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.14 以降を使用している。
-
Ansible コントローラーに
ansible-freeipa
パッケージがインストールされている。
手順
編集するインベントリーファイルを開きます。IdM レプリカとなるホストの完全修飾ドメイン名 (FQDN) を指定します。FQDN は有効な DNS 名である必要があります。
-
数字、アルファベット、およびハイフン (
-
) のみを使用できる。たとえば、アンダーラインは使用できないため、DNS の障害が発生する原因となる可能性があります。 ホスト名がすべて小文字である。
レプリカの FQDN のみが定義されている単純なインベントリーホストファイルの例
[ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...]
IdM サーバーがデプロイされており、SRV レコードが IdM DNS ゾーンに適切に設定されている場合、スクリプトはその他に必要な値をすべて自動的に検出します。
-
数字、アルファベット、およびハイフン (
オプション: トポロジーの設計方法に基づいて、インベントリーファイルに追加情報を入力します。
- シナリオ 1
自動検出を回避し、
[ipareplicas]
セクションに記載されているすべてのレプリカが特定の IdM サーバーを使用するようにするには、インベントリーファイルの[ipaservers]
セクションにそのサーバーを設定します。IdM サーバーとレプリカの FQDN が定義されているインベントリーホストファイルの例
[ipaservers] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...]
- シナリオ 2
または、自動検出を回避して、特定のサーバーで特定のレプリカをデプロイする場合は、インベントリーファイルの
[ipareplicas]
セクションに、特定のレプリカのサーバーを個別に設定します。特定のレプリカ用に特定の IdM サーバーが定義されたインベントリーファイルの例
[ipaservers] server.idm.example.com replica1.idm.example.com [ipareplicas] replica2.idm.example.com replica3.idm.example.com ipareplica_servers=replica1.idm.example.com
上記の例では、
replica3.idm.example.com
が、すでにデプロイされたreplica1.idm.example.com
を複製元として使用します。- シナリオ 3
1 つのバッチに複数のレプリカをデプロイする場合は、多層レプリカのデプロイメントが役に立ちます。インベントリーファイルにレプリカの特定グループ (例:
[ipareplicas_tier1]
および[ipareplicas_tier2]
) を定義し、Playbookinstall-replica.yml
で各グループに個別のプレイを設計します。レプリカ階層が定義されているインベントリーファイルの例
[ipaservers] server.idm.example.com [ipareplicas_tier1] replica1.idm.example.com [ipareplicas_tier2] replica2.idm.example.com \ ipareplica_servers=replica1.idm.example.com,server.idm.example.com
ipareplica_servers
の最初のエントリーが使用されます。次のエントリーは、フォールバックオプションとして使用されます。IdM レプリカのデプロイに複数の層を使用する場合は、最初に tier1 からレプリカをデプロイし、次に tier2 からレプリカをデプロイするように、Playbook に個別のタスクが必要です。レプリカグループごとに異なるプレイを定義した Playbook ファイルの例
--- - name: Playbook to configure IPA replicas (tier1) hosts: ipareplicas_tier1 become: true roles: - role: ipareplica state: present - name: Playbook to configure IPA replicas (tier2) hosts: ipareplicas_tier2 become: true roles: - role: ipareplica state: present
オプション:
firewalld
と DNS に関する追加情報を入力します。- シナリオ 1
指定の
firewalld
ゾーン (内部ゾーンなど) をレプリカで使用する場合は、インベントリーファイルでゾーンを指定できます。カスタムゾーンを設定しないと、サービスがデフォルトのfirewalld
ゾーンに追加されます。事前定義されたデフォルトゾーンはpublic
です。重要指定する
firewalld
ゾーンは存在し、永続的でなければなりません。カスタム
firewalld
帯を持つシンプルなインベントリーホストファイルの例[ipaservers] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...] [ipareplicas:vars] ipareplica_firewalld_zone=custom zone
- シナリオ 2
レプリカで IdM DNS サービスをホストする場合は、
[ipareplicas:vars]
セクションに ipareplica_setup_dns=true 行を追加します。また、サーバーごとの DNS フォワーダーを使用するかどうかを指定します。-
サーバーごとのフォワーダーを設定するには、
ipareplica_forwarders
変数と文字列のリストを[ipareplicas:vars]
セクションに追加します (例: ipareplica_forwarders=192.0.2.1,192.0.2.2)。 -
サーバーごとのフォワーダーを設定しない場合は、
[ipareplicas:vars]
セクションに ipareplica_no_forwarders=true 行を追加します。 -
レプリカの
/etc/resolv.conf
ファイルにリスト表示されているフォワーダーに基づいてサーバーごとにフォワーダーを設定するには、[ipareplicas:vars]
セクションにipareplica_auto_forwarders
を追加します。
レプリカに DNS とサーバーごとのフォワーダーを設定する手順を含むインベントリーファイルの例
[ipaservers] server.idm.example.com [ipareplicas] replica1.idm.example.com replica2.idm.example.com replica3.idm.example.com [...] [ipareplicas:vars] ipareplica_setup_dns=true ipareplica_forwarders=192.0.2.1,192.0.2.2
-
サーバーごとのフォワーダーを設定するには、
- シナリオ 3
クラスターのデプロイを簡素化するために、
ipaclient_configure_dns_resolve
およびipaclient_dns_servers
オプション (使用可能な場合) を使用して DNS リゾルバーを指定します。これは、IdM デプロイメントが統合 DNS を使用している場合に特に便利です。DNS リゾルバーを指定するインベントリーファイルスニペット:
[...] [ipaclient:vars] ipaclient_configure_dns_resolver=true ipaclient_dns_servers=192.168.100.1
注記ipaclient_dns_servers
リストには IP アドレスのみを含める必要があります。ホスト名を含めることはできません。
関連情報
-
/usr/share/ansible/roles/ipareplica/README.md