Identity Management でのレプリケーションの管理
レプリケーション環境の準備および検証
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 レプリケーショントポロジーの管理 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) ドメイン内のサーバー間のレプリケーションを管理できます。レプリカを作成すると、IdM が初期サーバーとレプリカの間にレプリカ合意を作成します。複製されるデータはトポロジーの接尾辞に保存され、2 つのレプリカの接尾辞間でレプリカ合意があると、接尾辞がトポロジーセグメントを形成します。
1.2. IdM レプリカ間のレプリカ合意 リンクのコピーリンクがクリップボードにコピーされました!
管理者が、既存のサーバーに基づいてレプリカを作成すると、Identity Management (IdM) は、初期サーバーとレプリカとの間に レプリカ合意 を作成します。レプリカ合意は、データと設定が 2 台のサーバー間で継続的に複製されることを保証します。
IdM は、複数の読み取り/書き込みレプリカ複製 を使用します。この設定では、レプリカ合意に参加しているすべてのレプリカが更新の受信と提供を行うので、サプライヤーとコンシューマーとみなされます。レプリカ合意は常に双方向です。
図1.1 サーバーとレプリカ合意
IdM は、2 種類のレプリカ合意を使用します。
- ドメインレプリカ合意 は、アイデンティティー情報をレプリケートします。
- 証明書レプリカ合意 は、証明書情報をレプリケートします。
両方の複製チャンネルは独立しています。2 台のサーバー間で、いずれかまたは両方の種類のレプリカ合意を設定できます。たとえば、サーバー A とサーバー B にドメインレプリカ合意のみが設定されている場合は、証明書情報ではなく ID 情報だけが複製されます。
1.3. トポロジー接尾辞 リンクのコピーリンクがクリップボードにコピーされました!
トポロジー接尾辞 は、レプリケートされるデータを保存します。IdM は、domain と ca の 2 種類のトポロジー接尾辞に対応します。それぞれの接尾辞は、個別のサーバーである個別のレプリケーショントポロジーを表します。
レプリカ合意が設定されると、同じタイプのトポロジー接尾辞を 2 つの異なるサーバーに結合します。
domain接尾辞: dc=example,dc=comdomain接尾辞には、ドメイン関連のデータがすべて含まれています。2 つのレプリカの
domain接尾辞間でレプリカ合意が設定されると、ユーザー、グループ、およびポリシーなどのディレクトリーデータが共有されます。ca接尾辞: o=ipacaca接尾辞には、Certificate System コンポーネントのデータが含まれます。これは認証局 (CA) がインストールされているサーバーにのみ存在します。2 つのレプリカの
ca接尾辞間でレプリカ合意が設定されると、証明書データが共有されます。
図1.2 トポロジー接尾辞
新規レプリカのインストール時には、ipa-replica-install スクリプトが 2 つのサーバー間に初期トポロジーレプリカ合意をセットアップします。
1.4. トポロジーセグメント リンクのコピーリンクがクリップボードにコピーされました!
2 つのレプリカの接尾辞間でレプリカ合意があると、接尾辞は トポロジーセグメント を形成します。各トポロジーセグメントは、左ノード と 右ノード で構成されます。ノードは、レプリカ合意に参加しているサーバーを表します。
IdM のトポロジーセグメントは常に双方向です。各セグメントは、サーバー A からサーバー B、およびサーバー B からサーバー A への 2 つのレプリカ合意を表します。そのため、データは両方の方向でレプリケートされます。
図1.3 トポロジーセグメント
1.5. WebUI を使用したレプリケーショントポロジーの視覚的表現の表示および変更 リンクのコピーリンクがクリップボードにコピーされました!
Web UI を使用すると、レプリケーショントポロジーの表現を表示、操作、変換できます。Web UI のトポロジーグラフは、ドメイン内のサーバー間の関係を表示します。ドラッグアンドドロップを使用して、個々のトポロジーノードを移動できます。
以下の例は、さまざまな種類のトポロジーグラフを示しています。
ドメインのレプリカ合意に参加しているサーバーは、オレンジ色の矢印によって接続されます。CA のレプリカ合意に参加しているサーバーは、青色の矢印によって接続されます。
- トポロジーグラフの例: 推奨されるトポロジー
- 以下の推奨トポロジーの例は、4 台のサーバーに対して考えられる推奨トポロジーの 1 つを示しています。各サーバーは少なくとも 2 つの他のサーバーに接続されており、複数のサーバーが CA サーバーです。
- トポロジーグラフの例: 推奨されないトポロジー
推奨されないトポロジーの例では、
server1が単一障害点になります。その他のすべてのサーバーは、このサーバーとのレプリカ合意がありますが、他のサーバーとは合意がありません。したがって、server1が失敗すると、他のすべてのサーバーは分離されます。このようなトポロジーの作成は避けてください。
前提条件
- IdM 管理者としてログインしている。
手順
- → → を選択します。
トポロジーを変更します。
ドラッグアンドドロップを使用して、トポロジーグラフのノードを移動できます。
マウスのホイールを使用して、トポロジーグラフを拡大および縮小できます。
マウスの左ボタンを保持することで、トポロジーグラフのキャンバスを移動できます。
- トポロジーに加えた変更がグラフに反映されていない場合は、 をクリックします。
1.6. CLI を使用したトポロジー接尾辞の表示 リンクのコピーリンクがクリップボードにコピーされました!
レプリカ合意では、トポロジー接尾辞にレプリケートされたデータが保存されます。トポロジー接尾辞は CLI を使用して表示できます。
手順
ipa topologysuffix-findコマンドを入力して、トポロジー接尾辞のリストを表示します。$ ipa topologysuffix-find --------------------------- 2 topology suffixes matched --------------------------- Suffix name: ca Managed LDAP suffix DN: o=ipaca Suffix name: domain Managed LDAP suffix DN: dc=example,dc=com ---------------------------- Number of entries returned 2 ----------------------------
1.7. CLI を使用したトポロジーセグメントの表示 リンクのコピーリンクがクリップボードにコピーされました!
レプリカ合意では、2 つのレプリカの接尾辞間にレプリカ合意がある場合、接尾辞がトポロジーセグメントを形成します。トポロジーセグメントは CLI を使用して表示できます。
手順
ipa topologysegment-findコマンドを入力して、ドメインまたは CA 接尾辞に設定されている現在のトポロジーセグメントを表示します。たとえば、ドメイン接尾辞の場合は、以下のようになります。$ ipa topologysegment-find Suffix name: domain ----------------- 1 segment matched ----------------- Segment name: server1.example.com-to-server2.example.com Left node: server1.example.com Right node: server2.example.com Connectivity: both ---------------------------- Number of entries returned 1 ----------------------------この例では、ドメイン関連のデータのみが
server1.example.comとserver2.example.comの 2 つのサーバー間で複製されます。オプション: 特定のセグメントの詳細のみを表示するには、
ipa topologysegment-showコマンドを入力します。$ ipa topologysegment-show Suffix name: domain Segment name: server1.example.com-to-server2.example.com Segment name: server1.example.com-to-server2.example.com Left node: server1.example.com Right node: server2.example.com Connectivity: both
1.8. Web UI を使用した 2 台のサーバー間のレプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) Web UI を使用すると、2 つのサーバーを選択し、それらのサーバー間に新しいレプリカ合意を作成できます。
前提条件
- IdM 管理者としてログインしている。
手順
トポロジーグラフで、サーバーノードの 1 つにマウスを合わせます。
ドメインまたは CA オプション
-
作成するトポロジーセグメントのタイプに応じて、
domainまたは円のca部分をクリックします。 新しいレプリカ合意を表す新しい矢印が、マウスポインターの下に表示されます。マウスを他のサーバーノードに移動し、そこでクリックします。
新規セグメントの作成
Add topology segmentウィンドウで、 をクリックして、新しいセグメントのプロパティーを確認します。2 台のサーバー間の新しいトポロジーセグメントは、サーバーをレプリカ合意に参加させます。トポロジーグラフには、更新されたレプリケーショントポロジーが表示されるようになりました。
新規に作成されたセグメント
1.9. Web UI を使用した 2 台のサーバー間のレプリケーションの停止 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) Web UI を使用すると、サーバーからレプリカ合意を削除できます。
前提条件
- IdM 管理者としてログインしている。
手順
削除するレプリカ合意を表す矢印をクリックします。これにより、矢印がハイライト表示されます。
トポロジーセグメントのハイライト表示
- をクリックします。
Confirmationウィンドウで をクリックします。IdM は、2 台のサーバー間のトポロジーセグメントを削除します。これにより、そのレプリカ合意が削除されます。トポロジーグラフには、更新されたレプリケーショントポロジーが表示されるようになりました。
トポロジーセグメントの削除
1.10. CLI を使用した 2 つのサーバー間のレプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
ipa topologysegment-add コマンドを使用して、2 台のサーバー間のレプリカ合意を設定できます。
前提条件
- IdM 管理者認証情報がある。
手順
2 つのサーバーのトポロジーセグメントを作成します。プロンプトが表示されたら、以下を指定します。
-
必要なトポロジー接尾辞:
domainまたはca - 2 つのサーバーを表す、左ノードと右のノード
オプション: セグメントのカスタム名
以下に例を示します。
$ ipa topologysegment-add Suffix name: domain Left node: server1.example.com Right node: server2.example.com Segment name [server1.example.com-to-server2.example.com]: new_segment --------------------------- Added segment "new_segment" --------------------------- Segment name: new_segment Left node: server1.example.com Right node: server2.example.com Connectivity: both新しいセグメントを追加すると、サーバーをレプリカ合意に参加させます。
-
必要なトポロジー接尾辞:
検証
新しいセグメントが設定されていることを確認します。
$ ipa topologysegment-show Suffix name: domain Segment name: new_segment Segment name: new_segment Left node: server1.example.com Right node: server2.example.com Connectivity: both
1.11. CLI を使用した 2 つのサーバー間のレプリケーションの停止 リンクのコピーリンクがクリップボードにコピーされました!
ipa topology segment-del コマンドを使用して、コマンドラインからレプリカ合意を終了できます。
前提条件
- IdM 管理者認証情報がある。
手順
オプション: 削除する特定のレプリケーションセグメントの名前がわからない場合は、使用可能なすべてのセグメントを表示します。
ipa topologysegment-findコマンドを使用します。プロンプトが表示されたら、必要なトポロジー接尾辞 (domainまたはca) を指定します。以下に例を示します。$ ipa topologysegment-find Suffix name: domain ------------------ 8 segments matched ------------------ Segment name: new_segment Left node: server1.example.com Right node: server2.example.com Connectivity: both ... ---------------------------- Number of entries returned 8 ----------------------------必要なセグメントを出力で特定します。
2 つのサーバーを結合するトポロジーセグメントを削除します。
$ ipa topologysegment-del Suffix name: domain Segment name: new_segment ----------------------------- Deleted segment "new_segment" -----------------------------セグメントを削除すると、レプリカ合意が削除されます。
検証
セグメントがリストに表示されなくなったことを確認します。
$ ipa topologysegment-find Suffix name: domain ------------------ 7 segments matched ------------------ Segment name: server2.example.com-to-server3.example.com Left node: server2.example.com Right node: server3.example.com Connectivity: both ... ---------------------------- Number of entries returned 7 ----------------------------
1.12. Web UI を使用したトポロジーからのサーバーの削除 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) の Web インターフェイスを使用して、トポロジーからサーバーを削除できます。この操作では、サーバーコンポーネントがホストからアンインストールされません。
前提条件
- IdM 管理者としてログインしている。
- 削除するサーバーが、残りのトポロジーで他のサーバーに接続する 唯一のサーバーではない。この場合、他のサーバーが分離されますが、これは許可されていません。
- 削除するサーバーが、最後の CA または DNS サーバー ではない。
サーバーの削除は元に戻せないアクションです。サーバーを削除すると、トポロジーに戻す唯一の方法は、マシンに新しいレプリカをインストールすることです。
手順
- → → を選択します。
削除するサーバーの名前をクリックします。
サーバーの選択
- をクリックします。
1.13. CLI を使用したトポロジーからのサーバーの削除 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、トポロジーから Identity Management (IdM) サーバーを削除できます。
前提条件
- IdM 管理者認証情報がある。
- 削除するサーバーが、残りのトポロジーで他のサーバーに接続する 唯一のサーバーではない。この場合、他のサーバーが分離されますが、これは許可されていません。
- 削除するサーバーが、最後の CA または DNS サーバー ではない。
サーバーの削除は元に戻せないアクションです。サーバーを削除すると、トポロジーに戻す唯一の方法は、マシンに新しいレプリカをインストールすることです。
手順
server2.example.comでipa server-delコマンドを実行してserver1.example.comを削除します。このコマンドは、サーバーを参照するすべてのトポロジーセグメントを削除します。[user@server2 ~]$ ipa server-del Server name: server1.example.com Removing server1.example.com from replication topology, please wait... ---------------------------------------------------------- Deleted IPA server "server1.example.com" ----------------------------------------------------------オプション:
server1.example.comで、ipa server-install --uninstallコマンドを実行して、マシンからサーバーコンポーネントをアンインストールします。[root@server1 ~]# ipa server-install --uninstall
1.14. 古い RUV レコードの削除 リンクのコピーリンクがクリップボードにコピーされました!
レプリカ合意を適切に削除せずに IdM トポロジーからサーバーを削除すると、古いレプリカ更新ベクトル (RUV) レコードは、トポロジー内の残りの複数のサーバーに残されます。これは、たとえば自動化により発生する可能性があります。これらのサーバーは、現在削除されたサーバーから更新を受け取ることを想定しています。この場合は、残りのサーバーから古い RUV レコードをクリーンアップする必要があります。
前提条件
- IdM 管理者認証情報がある。
- どのレプリカが壊れているか、または不適切に削除されたかがわかっている。
手順
ipa-replica-manage list-ruvコマンドを使用して、RUV の詳細をリスト表示します。このコマンドは、レプリカ ID を表示します。$ ipa-replica-manage list-ruv server1.example.com:389: 6 server2.example.com:389: 5 server3.example.com:389: 4 server4.example.com:389: 12重要ipa-replica-manage list-ruvコマンドは、誤作動したり、不適切に削除されたりしたレプリカだけでなく、トポロジー内のすべてのレプリカをリスト表示します。ipa-replica-manage clean-ruvを使用して、指定したレプリカに関連付けられた古い RUV を削除します。古い RUV を持つすべてのレプリカ ID に対してこのコマンドを繰り返します。たとえば、server1.example.comとserver2.example.comが誤作動したり、レプリカが不適切に削除されたりすることを確認している場合:ipa-replica-manage clean-ruv 6 ipa-replica-manage clean-ruv 5警告ipa-replica-manage clean-ruvの使用には、特別な注意を払って続行してください。有効なレプリカ ID を指定してコマンドを実行すると、レプリカデータベース内のそのレプリカに関連するすべてのデータが破損します。この場合は、
$ ipa-replica-manage re-initialize --from server1.example.comを使用して、別のレプリカからレプリカを再初期化します。
検証
-
ipa-replica-manage list-ruvを再度実行します。このコマンドで破損した RUV が表示されなくなった場合は、レコードが正常に消去されています。 このコマンドで、依然として破損した RUV が表示される場合は、このタスクを使用して手動で削除します。
dn: cn=clean replica_ID, cn=cleanallruv, cn=tasks, cn=config objectclass: extensibleObject replica-base-dn: dc=example,dc=com replica-id: replica_ID replica-force-cleaning: no cn: clean replica_ID
1.15. IdM Web UI を使用して IdM トポロジーで利用可能なサーバーロールを表示する リンクのコピーリンクがクリップボードにコピーされました!
IdM サーバーにインストールされるサービスに基づいて、さまざまな サーバーロール を実行できます。以下に例を示します。
- CA サーバー
- DNS サーバー
- Key Recovery Authority (KRA) サーバー
手順
サポートされるサーバーロールの完全なリストは、 → → を参照してください。
注記-
Role status が
absentの場合は、トポロジー内でそのロールを実行しているサーバーがないことを示しています。 -
Role status が
enabledの場合は、トポロジー内でそのロールを実行しているサーバーが 1 台以上あることを示しています。
Web UI でのサーバーロール
-
Role status が
1.16. IdM CLI を使用して IdM トポロジーで利用可能なサーバーロールを表示する リンクのコピーリンクがクリップボードにコピーされました!
IdM サーバーにインストールされるサービスに基づいて、さまざまな サーバーロール を実行できます。以下に例を示します。
- CA サーバー
- DNS サーバー
- Key Recovery Authority (KRA) サーバー
手順
トポロジー内のすべての CA サーバーと現在の CA 更新サーバーを表示するには、以下を実行します。
$ ipa config-show ... IPA masters: server1.example.com, server2.example.com, server3.example.com IPA CA servers: server1.example.com, server2.example.com IPA CA renewal master: server1.example.comまたは、特定のサーバー (例: server.example.com) で有効になっているロールのリストを表示するには、以下を実行します。
$ ipa server-show Server name: server.example.com ... Enabled server roles: CA server, DNS server, KRA serverまたは、
ipa server-find --servroleコマンドを使用して、特定のサーバーロールが有効になっているすべてのサーバーを検索します。たとえば、すべての CA サーバーを検索するには、以下を実行します。$ ipa server-find --servrole "CA server" --------------------- 2 IPA servers matched --------------------- Server name: server1.example.com ... Server name: server2.example.com ... ---------------------------- Number of entries returned 2 ----------------------------
1.17. レプリカの CA 更新サーバーおよび CRL パブリッシャーサーバーへのプロモート リンクのコピーリンクがクリップボードにコピーされました!
IdM デプロイメントで組み込み認証局 (CA) を使用する場合は、IdM CA サーバーの 1 つが CA サブシステム証明書の更新を管理する CA 更新サーバーとして機能します。IdM CA サーバーの 1 つは、証明書失効リストを生成する IdM CRL パブリッシャーサーバーとしても機能します。
デフォルトでは、CA 更新サーバーの機能と CRL パブリッシャーサーバーの機能は、システム管理者が ipa-server-install または ipa-ca-install コマンドを使用して CA ロールをインストールした最初のサーバーにインストールされます。ただし、どちらかの機能を、CA ロールが有効な他の IdM サーバーに移動することも可能です。
前提条件
- IdM 管理者認証情報がある。
第2章 Ansible を使用した IdM でのレプリケーショントポロジーの管理 リンクのコピーリンクがクリップボードにコピーされました!
複数の Identity Management (IdM) サーバーを維持し、冗長性の目的で相互に複製して、サーバーの損失を軽減または防止することができます。たとえば、1 台のサーバーに障害が発生しても、その他のサーバーがドメインにサービスを提供し続けます。障害が発生していないサーバーの 1 台から新しいレプリカを作成し、失われたサーバーを回復することもできます。
IdM サーバーに保存されているデータは、レプリカ合意に基づいてレプリケートされます。2 台のサーバーにレプリカ合意が設定されている場合、それらのサーバーはデータを共有します。レプリケートされるデータはトポロジーの suffixes に保存されます。2 つのレプリカに接尾辞間でレプリカ合意があると、接尾辞はトポロジー segment を形成します。
この章では、Ansible を使用して IdM レプリカ合意、トポロジーセグメント、およびトポロジー接尾辞を管理する方法を説明します。
2.1. Ansible を使用して IdM にレプリカ合意が存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) サーバーに保存されているデータは、レプリカ合意に基づいて複製されます。2 台のサーバーでレプリカ合意が設定されている場合は、データを共有します。レプリカ合意は常に双方向的です。つまり、1 台目のレプリカから 2 台目のレプリカにデータがレプリケートされるだけでなく、2 台目のレプリカから 1 台目のレプリカにもデータがレプリケートされます。
Ansible Playbook を使用して、server.idm.example.com と replica.idm.example.com の間に domain タイプのレプリカ合意が存在する状態にするには、次の手順を実行します。
前提条件
- トポロジー内の IdM レプリカを接続するためのガイドライン に記載されている IdM トポロジーの設計に関する推奨事項を理解している。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/ansible-freeipaパッケージによって提供されるadd-topologysegment.ymlAnsible Playbook ファイルをコピーします。$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topology/add-topologysegment.yml add-topologysegment-copy.yml-
add-topologysegment-copy.ymlファイルを編集のために開きます。 ipatopologysegmentタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 -
追加するセグメントのタイプに応じて、
suffix変数をdomainまたはcaのいずれかに設定します。 -
leftの変数をレプリカ合意の左ノードに設定する IdM サーバーの名前に設定します。 -
レプリカ合意の適切なノードとなる IdM サーバーの名前に
right変数を設定します。 -
state変数はpresentに設定されていることを確認します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
--- - name: Playbook to handle topologysegment hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Add topology segment ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: domain left: server.idm.example.com right: replica.idm.example.com state: present-
ファイルを保存します。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-topology.mdファイルと/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topologyディレクトリーを参照してください。Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-topologysegment-copy.yml
2.2. Ansible を使用して複数の IdM レプリカ間にレプリカ合意が存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) サーバーに保存されているデータは、レプリカ合意に基づいて複製されます。2 台のサーバーでレプリカ合意が設定されている場合は、データを共有します。レプリカ合意は常に双方向的です。つまり、1 台目のレプリカから 2 台目のレプリカにデータがレプリケートされるだけでなく、2 台目のレプリカから 1 台目のレプリカにもデータがレプリケートされます。
IdM の複数のレプリカペア間にレプリカ合意が存在する状態にするには、次の手順を実行します。
前提条件
- トポロジー内のレプリカの接続 に記載されている IdM トポロジーの設計に関する推奨事項を理解している。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/ansible-freeipaパッケージによって提供されるadd-topologysegments.ymlAnsible Playbook ファイルをコピーします。$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topology/add-topologysegments.yml add-topologysegments-copy.yml-
add-topologysegments-copy.ymlファイルを編集のために開きます。 varsセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 すべてのトポロジーセグメントについて、
ipatopology_segmentsセクションに行を追加し、以下の変数を設定します。-
追加するセグメントのタイプに応じて、
suffix変数をdomainまたはcaのいずれかに設定します。 -
leftの変数をレプリカ合意の左ノードに設定する IdM サーバーの名前に設定します。 -
レプリカ合意の適切なノードとなる IdM サーバーの名前に
right変数を設定します。
-
追加するセグメントのタイプに応じて、
-
add-topologysegments-copy.ymlファイルのtasksセクションで、state変数がpresentに設定されていることを確認します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
--- - name: Add topology segments hosts: ipaserver gather_facts: false vars: ipaadmin_password: "{{ ipaadmin_password }}" ipatopology_segments: - {suffix: domain, left: replica1.idm.example.com , right: replica2.idm.example.com } - {suffix: domain, left: replica2.idm.example.com , right: replica3.idm.example.com } - {suffix: domain, left: replica3.idm.example.com , right: replica4.idm.example.com } - {suffix: domain+ca, left: replica4.idm.example.com , right: replica1.idm.example.com } vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Add topology segment freeipa.ansible_freeipa.ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: "{{ item.suffix }}" name: "{{ item.name | default(omit) }}" left: "{{ item.left }}" right: "{{ item.right }}" state: present loop: "{{ ipatopology_segments | default([]) }}"ファイルを保存します。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-topology.mdファイルと/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topologyディレクトリーを参照してください。Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-topologysegments-copy.yml
2.3. Ansible を使用して 2 つのレプリカ間にレプリカ合意が存在するかどうかを確認する リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) サーバーに保存されているデータは、レプリカ合意に基づいて複製されます。2 台のサーバーでレプリカ合意が設定されている場合は、データを共有します。レプリカ合意は常に双方向的です。つまり、1 台目のレプリカから 2 台目のレプリカにデータがレプリケートされるだけでなく、2 台目のレプリカから 1 台目のレプリカにもデータがレプリケートされます。
以下の手順に従って、IdM のレプリカのペア間でレプリカ合意が存在することを確認します。Ansible を使用して IdM にレプリカ合意が存在する状態にする場合 とは対照的に、この手順では既存の設定は変更されません。
前提条件
- トポロジー内のレプリカの接続 に記載されている IdM トポロジーの設計に関する推奨事項を理解している。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/ansible-freeipaパッケージによって提供されるcheck-topologysegments.ymlAnsible Playbook ファイルをコピーします。$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topology/check-topologysegments.yml check-topologysegments-copy.yml-
check-topologysegments-copy.ymlファイルを編集のために開きます。 varsセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 すべてのトポロジーセグメントについて、
ipatopology_segmentsセクションに行を追加し、以下の変数を設定します。-
追加するセグメントのタイプに応じて、
suffix変数をdomainまたはcaのいずれかに設定します。 -
leftの変数をレプリカ合意の左ノードに設定する IdM サーバーの名前に設定します。 -
レプリカ合意の適切なノードとなる IdM サーバーの名前に
right変数を設定します。
-
追加するセグメントのタイプに応じて、
-
check-topologysegments-copy.ymlファイルのtasksセクションで、state変数がpresentに設定されていることを確認します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
--- - name: Add topology segments hosts: ipaserver gather_facts: false vars: ipaadmin_password: "{{ ipaadmin_password }}" ipatopology_segments: - {suffix: domain, left: replica1.idm.example.com, right: replica2.idm.example.com } - {suffix: domain, left: replica2.idm.example.com , right: replica3.idm.example.com } - {suffix: domain, left: replica3.idm.example.com , right: replica4.idm.example.com } - {suffix: domain+ca, left: replica4.idm.example.com , right: replica1.idm.example.com } vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Check topology segment freeipa.ansible_freeipa.ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: "{{ item.suffix }}" name: "{{ item.name | default(omit) }}" left: "{{ item.left }}" right: "{{ item.right }}" state: checked loop: "{{ ipatopology_segments | default([]) }}"ファイルを保存します。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-topology.mdファイルと/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topologyディレクトリーを参照してください。Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory check-topologysegments-copy.yml
2.4. Ansible を使用して IdM にトポロジー接尾辞が存在することを確認する リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) のレプリカ合意のコンテキストでは、トポロジー接尾辞はレプリケートされるデータを保存します。IdM は、domain と ca の 2 種類のトポロジー接尾辞に対応します。それぞれの接尾辞は、個別のバックエンドである個別のレプリケーショントポロジーを表します。レプリカ合意が設定されると、同じタイプのトポロジー接尾辞を 2 つの異なるサーバーに結合します。
domain 接尾辞には、ユーザー、グループ、ポリシーに関するデータなど、ドメイン関連のすべてのデータが含まれます。ca 接尾辞には、Certificate System コンポーネントのデータが含まれます。これは認証局 (CA) がインストールされているサーバーにのみ存在します。
Ansible Playbook を使用して IdM にトポロジー接尾辞が存在する状態にするには、次の手順を実行します。この例では、IdM に domain 接尾辞が存在する状態にする方法を説明します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/ansible-freeipaパッケージによって提供されるverify-topologysuffix.ymlAnsible Playbook ファイルをコピーします。$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topology/ verify-topologysuffix.yml verify-topologysuffix-copy.yml-
Ansible Playbook ファイル
verify-topologysuffix-copy.ymlを開きます。 freeipa.ansible_freeipa.ipatopologysuffixセクションで次の変数を設定して、ファイルを変更します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 -
suffix変数はdomainに設定します。ca接尾辞が存在することを確認する場合は、変数をcaに設定します。 -
state変数がverifiedに設定されていることを確認します。他のオプションは使用できません。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
--- - name: Playbook to handle topologysuffix hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Verify topology suffix freeipa.ansible_freeipa.ipatopologysuffix: ipaadmin_password: "{{ ipaadmin_password }}" suffix: domain state: verified-
ファイルを保存します。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-topology.mdファイルと/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topologyディレクトリーを参照してください。Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory verify-topologysuffix-copy.yml
2.5. Ansible を使用した IdM レプリカの再初期化 リンクのコピーリンクがクリップボードにコピーされました!
レプリカが長時間オフラインになっている場合や、データベースが破損している場合は、レプリカを再初期化できます。再初期化により、新しいデータセットでレプリカが更新されます。たとえば、バックアップからの権限のある復元を行う必要がある場合に、再初期化を使用できます。
レプリケーションの更新とは対照的に、レプリカが変更エントリーのみを送信する間、データベース全体を再初期化します。
コマンドを実行するローカルホストは、再初期化されたレプリカです。データの取得元となるレプリカを指定するには、direction オプションを使用します。
以下の手順に従って、Ansible Playbook を使用して server.idm.example.com から replica.idm.example.com の domain データを再初期化します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/ansible-freeipaパッケージによって提供されるreinitialize-topologysegment.ymlAnsible Playbook ファイルをコピーします。$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topology/reinitialize-topologysegment.yml reinitialize-topologysegment-copy.yml-
reinitialize-topologysegment-copy.ymlファイルを編集のために開きます。 freeipa.ansible_freeipa.ipatopologysegmentセクションで次の変数を設定して、ファイルを変更します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 -
suffix変数はdomainに設定します。caデータを再初期化する場合は、変数をcaに設定します。 -
leftの変数をレプリカ合意の左ノードに設定します。 -
レプリカ合意の
rightなノードに正しい変数を設定します。 -
direction変数は再初期化されるデータの方向に設定します。left-to-rightは、左のノードから適切なノードにデータフローがあることを意味します。 state変数がreinitializedに設定されていることを確認します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
--- - name: Playbook to handle topologysegment hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Reinitialize topology segment freeipa.ansible_freeipa.ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: domain left: server.idm.example.com right: replica.idm.example.com direction: left-to-right state: reinitialized
-
ファイルを保存します。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-topology.mdファイルと/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topologyディレクトリーを参照してください。Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory reinitialize-topologysegment-copy.yml
2.6. Ansible を使用して IdM にレプリカ合意が存在しない状態にする リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) サーバーに保存されているデータは、レプリカ合意に基づいて複製されます。2 台のサーバーでレプリカ合意が設定されている場合は、データを共有します。レプリカ合意は常に双方向的です。つまり、1 台目のレプリカから 2 台目のレプリカにデータがレプリケートされるだけでなく、2 台目のレプリカから 1 台目のレプリカにもデータがレプリケートされます。
IdM の 2 つのレプリカ間にレプリカ合意が存在しない状態にするには、次の手順を実行します。この例では、replica01.idm.example.com および replica02.idm.example.com IdM サーバーの間に、domain タイプのレプリカ合意が存在しない状態にする方法を説明します。
前提条件
- トポロジー内のレプリカの接続 に記載されている IdM トポロジーの設計に関する推奨事項を理解している。
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
$ cd ~/MyPlaybooks/ansible-freeipaパッケージによって提供されるdelete-topologysegment.ymlAnsible Playbook ファイルをコピーします。$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topology/delete-topologysegment.yml delete-topologysegment-copy.yml-
delete-topologysegment-copy.ymlファイルを編集のために開きます。 ipatopologysegmentタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_password変数の値が secret.yml Ansible vault ファイルで定義されていることを示します。 -
suffix変数はdomainに設定します。また、caデータが左右ノードと右のノード間で複製されないようにするには、変数をcaに設定します。 -
leftの変数を、レプリカ合意の左ノードである IdM サーバーの名前に設定します。 -
rightの変数を、レプリカ合意の右ノードである IdM サーバーの名前に設定します。 -
state変数は、absentに設定されていることを確認します。
以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
--- - name: Playbook to handle topologysegment hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Delete topology segment ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: domain left: replica01.idm.example.com right: replica02.idm.example.com: state: absent-
ファイルを保存します。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-topology.mdファイルと/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/topologyディレクトリーを参照してください。Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i inventory delete-topologysegment-copy.yml
第3章 Healthcheck を使用した IdM レプリケーションの確認 リンクのコピーリンクがクリップボードにコピーされました!
Healthcheck ツールを使用して、Identity Management (IdM) レプリケーションをテストできます。ツールに関する一般情報は、IdM の Healthcheck を参照してください。
3.1. IdM のレプリケーションとトポロジーのヘルスチェックテスト リンクのコピーリンクがクリップボードにコピーされました!
Healthcheck ツールには、Identity Management (IdM) トポロジー設定のテストが含まれています。テストでは、レプリケーション競合の問題を検索します。
IPATopologyDomainCheck テストと ReplicationConflictCheck テストは、ipa-healthcheck --list-sources コマンドによる出力の ipahealthcheck.ipa.topology と ipahealthcheck.ds.replication ソースの下にあります。
- IPATopologyDomainCheck
次の設定をテストします。
- どの IdM サーバーもトポロジーから切断されない。
- 推奨される数を超えるレプリカ合意が IdM サーバーにない。
テストに成功すると、設定済みのドメインが返されます。成功しなかった場合は、特定の接続エラーが報告されます。
注記このテストでは、
domain接尾辞に対してipa topologysuffix-verifyコマンドを実行します。このサーバーで IdM Certificate Authority サーバーロールが設定されている場合は、ca接尾辞のコマンドも実行されます。- ReplicationConflictCheck
-
LDAP 内で
(&(!(objectclass=nstombstone))(nsds5ReplConflict=*))に一致するエントリーを検索します。
3.2. Healthcheck を使用したレプリケーションのスクリーニング リンクのコピーリンクがクリップボードにコピーされました!
Healthcheck ツールを使用して Identity Management (IdM) のレプリケーションおよびトポロジー設定のスタンドアロン手動テストを実行するには、次の手順に従います。
前提条件
-
root権限がある。
手順
以下を入力します。
# ipa-healthcheck --source=ipahealthcheck.ds.replication --source=ipahealthcheck.ipa.topology--source=ipahealthcheck.ds.replicationおよび--source=ipahealthcheck.ipa.topologyオプションを指定すると、IdM Healthcheck によってレプリケーション競合とトポロジーテストだけが実行されます。以下のような 4 つの結果が取得できます。
SUCCESS- テストに問題なく合格しました。{ "source": "ipahealthcheck.ipa.topology", "check": "IPATopologyDomainCheck", "result": "SUCCESS", "kw": { "suffix": "domain" } }-
WARNING- テストには合格しましたが、問題がある可能性があります。 ERROR- テストに合格しませんでした。{ "source": "ipahealthcheck.ipa.topology", "check": "IPATopologyDomainCheck", "result": "ERROR", "uuid": d6ce3332-92da-423d-9818-e79f49ed321f "when": 20191007115449Z "duration": 0.005943 "kw": { "msg": "topologysuffix-verify domain failed, server2 is not connected (server2_139664377356472 in MainThread)" } }-
CRITICAL- テストに合格しませんでした。IdM サーバーの機能に影響があります。
注記問題を確認するには、すべての IdM サーバーで上記のテストを実行します。