管理身份管理中的复制
准备和验证复制环境
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 点顶部导航栏中的 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 管理复制拓扑 复制链接链接已复制到粘贴板!
您可以管理身份管理(IdM)域中的服务器之间的复制。当您创建副本时,身份管理(IdM)会在初始服务器和副本之间创建一个复制协议。然后,复制的数据会存储在拓扑后缀中,当两个副本在它们的后缀之间有复制协议时,后缀会形成一个拓扑段。
1.1. IdM 副本之间的复制协议 复制链接链接已复制到粘贴板!
当管理员基于现有服务器创建副本时,身份管理 (IdM) 会在初始服务器和副本之间创建复制协议。复制协议确保两个服务器之间不断复制数据和配置。
IdM 使用多读/写副本复制。在这种配置中,所有副本都加入到复制协议中接收并提供更新,因此被视为供应商和消费者。复制协议始终是强制的。
图 1.1. 服务器和副本协议
IdM 使用两种复制协议:
- 域复制协议 复制身份信息。
- 证书复制协议 复制证书信息。
两个复制频道都是独立的。两个服务器可以有一类或两种类型的复制协议。例如,当服务器 A 和服务器 B 仅配置了域复制协议时,它们之间仅复制身份信息,而不复制证书信息。
1.2. 拓扑后缀 复制链接链接已复制到粘贴板!
拓扑后缀 存储复制的数据。IdM 支持两种类型的拓扑后缀:domain 和 ca。每个后缀代表一个单独的服务器,一个独立的复制拓扑。
配置复制协议时,它会在两个不同的服务器上加入同一类型的两个拓扑后缀。
域后缀:dc=example,dc=com域后缀包含所有域相关的数据。当两个副本在其
域后缀之间有一个复制协议时,它们将共享目录数据,如用户、组和策略。ca suffix: o=ipacaca后缀包含证书系统组件的数据。它仅存在于安装有证书颁发机构 (CA) 的服务器上。当两个副本在其
ca后缀之间有复制协议时,它们将共享证书数据。
图 1.2. 拓扑后缀
在安装新副本时,ipa-replica-install 脚本会在两台服务器之间设置初始拓扑复制协议。
1.3. 拓扑段 复制链接链接已复制到粘贴板!
当两个副本在它们的后缀之间有复制协议时,后缀会形成 拓扑段。每个拓扑片段由一个 左节点 和一个 右节点 组成。节点代表加入复制协议的服务器。
IdM 中的拓扑段始终是双向的。每个段代表两种复制协议:从服务器 A 到服务器 B 和从服务器 B 到服务器 A。因此,数据被双向复制。
图 1.3. 拓扑段
1.4. 使用 Web UI 查看和修改复制拓扑的可视化表示 复制链接链接已复制到粘贴板!
使用 Web UI,您可以查看、操作和转换复制拓扑表示。Web UI 中的拓扑图显示了域中服务器之间的关系。您可以通过保存并拖动鼠标来移动单个拓扑节点。
解释拓扑图
加入域复制协议的服务器通过橙色箭头连接。加入 CA 复制协议的服务器通过蓝色箭头连接。
- 拓扑图示例:推荐的拓扑
以下推荐的拓扑示例显示了四个服务器的可能的推荐拓扑之一:每个服务器至少连接到两个其他服务器,并且多个服务器是 CA 服务器。
图 1.4. 建议的拓扑示例
- 拓扑图示例:不推荐的拓扑
在以下不建议的拓扑示例中,
server1是一个单点故障。所有其他服务器都与此服务器有复制协议,但与其他任何服务器都没有。因此,如果server1出现故障,所有其他服务器将被隔离。避免创建类似这样的拓扑。
图 1.5. 不鼓励的拓扑示例:单点故障
先决条件
- 您以 IdM 管理员身份登录。
步骤
- 选择 → → 。
更改拓扑:
您可以使用鼠标左键移动拓扑图形节点:
您可以使用鼠标滚轮放大和缩小拓扑图:
您可以通过按住鼠标左键来移动拓扑图的画布:
- 如果您对拓扑所做的任何更改没有立即反映在图中,请点击 。
1.5. 使用 CLI 查看拓扑后缀 复制链接链接已复制到粘贴板!
在复制协议中,拓扑后缀存储复制的数据。您可以使用 CLI 查看拓扑后缀。
步骤
输入
ipa topologysuffix-find命令显示拓扑后缀列表:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6. 使用 CLI 查看拓扑片段 复制链接链接已复制到粘贴板!
在复制协议中,当两个副本在其后缀之间有复制协议时,后缀组成一个拓扑片段。您可以使用 CLI 查看拓扑片段。
步骤
输入
ipa topologysegment-find命令显示为域或 CA 后缀配置的当前拓扑片段。例如,对于域后缀:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,域相关的数据仅在两个服务器之间被复制:
server1.example.com和server2.example.com。可选: 要只显示特定片段的详情,请输入
ipa topologysegment-show命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. 使用 Web UI 在两台服务器之间设置复制 复制链接链接已复制到粘贴板!
使用身份管理(IdM) Web UI,您可以选择两个服务器,并在它们之间创建新的复制协议。
先决条件
- 您以 IdM 管理员身份登录。
步骤
在拓扑图中,将鼠标悬停在其中一台服务器节点上。
图 1.6. 域或 CA 选项
-
根据您要创建的拓扑段的类型,单击圆圈的
domain或ca部分。 在鼠标指针下会出现代表新复制协议的新箭头。将鼠标移到其他服务器节点,然后单击该节点。
图 1.7. 创建新段
-
在
Add topology segment窗口中,单击 来确认新段的属性。
两个服务器之间的新拓扑段将它们加入复制协议。拓扑图现在显示更新的复制拓扑:
图 1.8. 新段创建好了
1.8. 使用 Web UI 停止两个服务器之间的复制 复制链接链接已复制到粘贴板!
使用身份管理(IdM) Web UI,您可以从服务器中删除复制协议。
先决条件
- 您以 IdM 管理员身份登录。
步骤
单击代表您要删除的复制协议的箭头。这会高亮显示箭头。
图 1.9. 拓扑段高亮显示
- 单击 。
在
Confirmation窗口中,单击 。IdM 删除两个服务器之间的拓扑段,这将删除它们的复制协议。拓扑图现在显示更新的复制拓扑:
图 1.10. 拓扑段删除了
1.9. 使用 CLI 在两个服务器之间建立复制 复制链接链接已复制到粘贴板!
您可以使用 ipa topologysegment-add 命令在两个服务器之间配置复制协议。
先决条件
- 您有 IdM 管理员凭证。
步骤
为两台服务器创建一个拓扑段。出现提示时,请提供:
-
所需的拓扑后缀:
domain或ca - 左侧节点和右侧节点,代表两台服务器
可选:片段的自定义名称
例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新段来将服务器加入复制协议。
-
所需的拓扑后缀:
验证
验证新段是否已配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.10. 使用 CLI 停止两个服务器之间的复制 复制链接链接已复制到粘贴板!
您可以使用 ipa topology segment-del 命令从命令行终止复制协议。
先决条件
- 您有 IdM 管理员凭证。
步骤
可选:如果您不知道要删除的特定复制段的名称,请显示所有可用的片段。使用
ipa topologysegment-find命令。出现提示时,请提供所需的拓扑后缀:domain或ca。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在输出中找到所需的段。
删除连接两台服务器的拓扑段:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除段会删除复制协议。
验证
验证段是否不再列出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.11. 使用 Web UI 从拓扑中删除服务器 复制链接链接已复制到粘贴板!
您可以使用身份管理(IdM)Web 界面从拓扑中删除服务器。此操作不会从主机中卸载服务器组件。
先决条件
- 您以 IdM 管理员身份登录。
- 您要删除的服务器 不是 连接其他服务器与拓扑其余部分的唯一服务器;这会导致其他服务器被隔离,这是不允许的。
- 您要删除的服务器 不是 您的最后一个 CA 或 DNS 服务器。
删除服务器是一个不可逆的操作。如果您删除了服务器,将其重新引入回拓扑的唯一方法是在机器上安装一个新副本。
步骤
- 选择 → → 。
单击要删除的服务器的名称。
图 1.11. 选择服务器
- 单击 。
其他资源
1.12. 使用 CLI 从拓扑中删除服务器 复制链接链接已复制到粘贴板!
您可以使用命令行从拓扑中删除身份管理(IdM)服务器。
先决条件
- 您有 IdM 管理员凭证。
- 您要删除的服务器 不是 连接其他服务器与拓扑其余部分的唯一服务器;这会导致其他服务器被隔离,这是不允许的。
- 您要删除的服务器 不是 您的最后一个 CA 或 DNS 服务器。
删除服务器是一个不可逆的操作。如果您删除了服务器,将其重新引入回拓扑的唯一方法是在机器上安装一个新副本。
步骤
删除 server1.example.com :
在另一台服务器上,运行
ipa server-del命令来移除server1.example.com。该命令删除指向服务器的所有拓扑片段:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:在
server1.example.com上,运行ipa server-install --uninstall命令来从机器中卸载服务器组件。ipa server-install --uninstall
[root@server1 ~]# ipa server-install --uninstallCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.13. 删除过时的 RUV 记录 复制链接链接已复制到粘贴板!
如果您在没有正确删除其复制协议的情况下从 IdM 拓扑中删除服务器,则过时的副本更新向量(RUV)记录将保留在拓扑中的一个或多个剩余服务器上。例如,由于自动化,可能会发生这种情况。这些服务器随后预期从现在删除的服务器接收更新。在这种情况下,您需要从剩余的服务器清理过时的 RUV 记录。
先决条件
- 您有 IdM 管理员凭证。
- 您知道哪些副本已损坏或已被错误地删除。
步骤
使用
ipa-replica-manage list-ruv命令列出 RUVs 的详细信息。命令显示副本 ID:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要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 6 ipa-replica-manage clean-ruv 5Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 ipa-replica-manage clean-ruv 时,请小心。针对有效副本 ID 运行命令将破坏与复制数据库中该副本关联的所有数据。
如果发生这种情况,请使用 $ ipa-replica-manage re-initialize --from server1.example.com 从另一个副本重新初始化副本。
验证
-
再次运行
ipa-replica-manage list-ruv。如果命令不再显示任何损坏的 RUV,则记录已被成功清理。 如果命令仍然显示损坏的 RUV,则使用此任务手动清除它们:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.14. 使用 IdM Web UI 查看 IdM 拓扑中的可用服务器角色 复制链接链接已复制到粘贴板!
根据安装在 IdM 服务器上的服务,它可以执行各种 服务器角色。例如:
- CA 服务器
- DNS 服务器
- 密钥恢复授权(KRA)服务器。
步骤
有关支持的服务器角色的完整列表,请参阅 → → 。
注意-
角色状态
absent意味着拓扑中没有服务器在执行角色。 -
角色状态
enabled意味着拓扑中的一个或多个服务器在执行角色。
图 1.12. Web UI 中的服务器角色
-
角色状态
1.15. 使用 IdM CLI 查看 IdM 拓扑中的可用服务器角色 复制链接链接已复制到粘贴板!
根据安装在 IdM 服务器上的服务,它可以执行各种 服务器角色。例如:
- CA 服务器
- DNS 服务器
- 密钥恢复授权(KRA)服务器。
步骤
要显示拓扑中的所有 CA 服务器和当前 CA 续订服务器:
ipa config-show
$ 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.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,要显示在特定服务器(如 server.example.com)上启用的角色的列表:
ipa server-show
$ ipa server-show Server name: server.example.com ... Enabled server roles: CA server, DNS server, KRA serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,使用
ipa server-find --servrole命令搜索启用了特定服务器角色的所有服务器。例如,要搜索所有 CA 服务器:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.16. 将副本提升为 CA 续订服务器和 CRL 发布者服务器 复制链接链接已复制到粘贴板!
如果您的 IdM 部署使用嵌入式证书颁发机构(CA),其中一个 IdM CA 服务器充当 CA 续订服务器(该服务器管理 CA 子系统证书的续订)。其中一个 IdM CA 服务器也充当 IdM CRL 发布者服务器(生成证书撤销列表的服务器)。
默认情况下,CA 续订服务器和 CRL 发布者服务器角色安装在系统管理员使用 ipa-server-install 或 ipa-ca-install 命令在其上安装 CA 角色的第一个服务器上。但是,您可以将两个角色之一传输到启用了 CA 角色的任何其他 IdM 服务器上。
先决条件
- 您有 IdM 管理员凭证。
第 2 章 准备您的环境以使用 Ansible playbook 管理 IdM 复制链接链接已复制到粘贴板!
作为管理身份管理 (IdM) 的系统管理员,在使用 Red Hat Ansible Engine 时,最好执行以下操作:
- 在您的主目录中,创建专用于 Ansible playbook 的子目录,如 ~/MyPlaybooks。
-
将示例 Ansible playbook 从
/usr/share/doc/ansible-freeipa/*和/usr/share/doc/rhel-system-roles/*目录以及它们的子目录复制到 ~/MyPlaybooks 目录中并进行调整。 - 将清单文件包含在 ~/MyPlaybooks 目录中。
通过这个方法,您可以在一个位置找到所有 playbook,并可以在不使用 root 特权的前提下运行 playbook。
您只需要在受管节点上具有 root 权限来执行 ipaserver、ipareplica、ipaclient 和 ipabackup ansible-freeipa 角色。这些角色需要具有目录和 dnf 软件包管理器的特权访问权限。
按照以下流程创建 ~/MyPlaybooks 目录并进行配置,以便您可以使用它来存储和运行 Ansible playbook。
先决条件
- 您已在受管节点上安装了 IdM 服务器 server.idm.example.com 和 replica.idm.example.com。
- 您已配置了 DNS 和网络,以便您可以直接从控制节点登录到受管节点 server.idm.example.com 和 replica.idm.example.com。
-
您需要知道 IdM
admin密码。
步骤
在主目录中为您的 Ansible 配置和 playbook 创建目录:
mkdir ~/MyPlaybooks/
$ mkdir ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks
$ cd ~/MyPlaybooksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建 ~/MyPlaybooks/ansible.cfg 文件:
[defaults] inventory = /home/your_username/MyPlaybooks/inventory [privilege_escalation] become=True
[defaults] inventory = /home/your_username/MyPlaybooks/inventory [privilege_escalation] become=TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建 ~/MyPlaybooks/inventory 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此配置定义了两个主机组,即 eu 和 us,用于这些位置中的主机。此外,此配置定义了 ipaserver 主机组,它包含来自 eu 和 us 组的所有主机。
可选:创建一个 SSH 公钥和私钥。要在测试环境中简化访问,请不要在私钥中设置密码:
ssh-keygen
$ ssh-keygenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 SSH 公钥复制到每个受管节点上的 IdM
admin帐户:ssh-copy-id admin@server.idm.example.com ssh-copy-id admin@replica.idm.example.com
$ ssh-copy-id admin@server.idm.example.com $ ssh-copy-id admin@replica.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令要求您输入 IdM
admin密码。
第 3 章 使用 Ansible 管理 IdM 中的复制拓扑 复制链接链接已复制到粘贴板!
您可以维护多个身份管理 (IdM) 服务器,并使它们相互复制,以实现冗余目的,以减少或防止服务器丢失。例如,如果一个服务器失败,其他服务器就会为域提供服务。您还可以根据剩余的服务器创建新副本来恢复丢失的服务器。
存储在 IdM 服务器上的数据会根据复制协议复制:当两台服务器配置了复制协议时,它们将共享其数据。复制的数据存储在拓扑后缀中。当两个副本在其后缀之间具有复制协议时,后缀组成一个拓扑片段(segment)。
本章论述了如何使用 Ansible 管理 IdM 复制协议、拓扑段和拓扑后缀。
3.1. 使用 Ansible 确保 IdM 中存在复制协议 复制链接链接已复制到粘贴板!
存储在身份管理 (IdM) 服务器上的数据存储基于复制协议:配置了两个服务器时,它们共享其数据。复制协议始终为现实:数据从第一个副本复制到另一个副本,另一个副本复制到第一个副本。
按照以下流程,使用 Ansible playbook 确保 server.idm.example.com 和 replica.idm.example.com 之间存在 domain 类型的复制协议。
先决条件
- 确保您了解设计 在拓扑中连接 IdM 副本的指南 中列出的拓扑的建议。
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点,也就是在其上执行
ansible-freeipa模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
步骤
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
ansible-freeipa软件包提供的add-topologysegment.ymlAnsible playbook 文件:cp /usr/share/doc/ansible-freeipa/playbooks/topology/add-topologysegment.yml add-topologysegment-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/add-topologysegment.yml add-topologysegment-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
add-topologysegment-copy.yml文件进行编辑。 通过在
ipatopologysegment任务部分设置以下变量来调整文件:-
表示
ipaadmin_password变量的值在 secret.yml Ansible vault 文件中定义。 -
根据您要添加的分段类型,将
suffix变量设置为domain或ca。 -
将
left变量设置为您要作为复制协议左侧节点的 IdM 服务器的名称。 -
将
right变量设置为您要作为复制协议正确节点的 IdM 服务器的名称。 -
确保
state变量设置为present。
这是当前示例修改的 Ansible playbook 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
表示
- 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory add-topologysegment-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-topologysegment-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 使用 Ansible 确保多个 IdM 副本之间存在复制协议 复制链接链接已复制到粘贴板!
存储在身份管理 (IdM) 服务器上的数据存储基于复制协议:配置了两个服务器时,它们共享其数据。复制协议始终为现实:数据从第一个副本复制到另一个副本,另一个副本复制到第一个副本。
按照以下流程确保 IdM 中的多个副本对存在复制协议。
先决条件
- 确保您了解拓扑中连接副本中列出的 IdM 拓扑的建议。
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点,也就是在其上执行
ansible-freeipa模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
步骤
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
ansible-freeipa软件包提供的add-topologysegments.ymlAnsible playbook 文件:cp /usr/share/doc/ansible-freeipa/playbooks/topology/add-topologysegments.yml add-topologysegments-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/add-topologysegments.yml add-topologysegments-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
add-topologysegments-copy.yml文件进行编辑。 通过在
vars部分中设置以下变量来调整文件:-
表示
ipaadmin_password变量的值在 secret.yml Ansible vault 文件中定义。 对于每个拓扑片段,在
ipatopology_segments部分添加一个行并设置以下变量:-
根据您要添加的分段类型,将
suffix变量设置为domain或ca。 -
将
left变量设置为您要作为复制协议左侧节点的 IdM 服务器的名称。 -
将
right变量设置为您要作为复制协议正确节点的 IdM 服务器的名称。
-
根据您要添加的分段类型,将
-
表示
在
add-topologysegments-copy.yml文件的tasks部分中,确保state变量设置为present。这是当前示例修改的 Ansible playbook 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory add-topologysegments-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-topologysegments-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 使用 Ansible 检查两个副本之间是否存在复制协议 复制链接链接已复制到粘贴板!
存储在身份管理 (IdM) 服务器上的数据存储基于复制协议:配置了两个服务器时,它们共享其数据。复制协议始终为现实:数据从第一个副本复制到另一个副本,另一个副本复制到第一个副本。
按照以下流程验证 IdM 中多个副本对是否存在复制协议。与 使用 Ansible 确保 IdM 中复制协议存在 不同,这个流程不会修改现有配置。
先决条件
- 确保您了解拓扑中连接副本中列出的 IdM 拓扑的建议。
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点,也就是在其上执行
ansible-freeipa模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
步骤
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
ansible-freeipa软件包提供的check-topologysegments.ymlAnsible playbook 文件:cp /usr/share/doc/ansible-freeipa/playbooks/topology/check-topologysegments.yml check-topologysegments-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/check-topologysegments.yml check-topologysegments-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
check-topologysegments-copy.yml文件进行编辑。 通过在
vars部分中设置以下变量来调整文件:-
表示
ipaadmin_password变量的值在 secret.yml Ansible vault 文件中定义。 对于每个拓扑片段,在
ipatopology_segments部分添加一个行并设置以下变量:-
根据您要添加的分段类型,将
suffix变量设置为domain或ca。 -
将
left变量设置为您要作为复制协议左侧节点的 IdM 服务器的名称。 -
将
right变量设置为您要作为复制协议正确节点的 IdM 服务器的名称。
-
根据您要添加的分段类型,将
-
表示
在
check-topologysegments-copy.yml文件的tasks部分中,确保state变量设置为present。这是当前示例修改的 Ansible playbook 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory check-topologysegments-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory check-topologysegments-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 使用 Ansible 验证 IdM 中是否存在拓扑后缀 复制链接链接已复制到粘贴板!
在身份管理 (IdM) 中的复制协议中,拓扑后缀存储要复制的数据。IdM 支持两种类型的拓扑后缀:domain 和 ca。每个后缀代表一个单独的后端,即一个单独的复制拓扑。配置复制协议时,它会在两个不同的服务器上加入同一类型的两个拓扑后缀。
domain 后缀包含与域相关的所有数据,如有关用户、组和策略的数据。ca 后缀包含证书系统组件的数据。它仅存在于安装有证书颁发机构 (CA) 的服务器上。
按照以下流程,使用 Ansible playbook 确保 IdM 中存在拓扑后缀。这个示例描述了如何确保 IdM 中存在 domain 后缀。
先决条件
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点,也就是在其上执行
ansible-freeipa模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
步骤
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
ansible-freeipa软件包提供的verify-topologysuffix.ymlAnsible playbook 文件:cp /usr/share/doc/ansible-freeipa/playbooks/topology/ verify-topologysuffix.yml verify-topologysuffix-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/ verify-topologysuffix.yml verify-topologysuffix-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
verify-topologysuffix-copy.ymlAnsible playbook 文件进行编辑。 通过在
ipatopologysuffix部分中设置以下变量来调整文件:-
表示
ipaadmin_password变量的值在 secret.yml Ansible vault 文件中定义。 -
将
suffix变量设置为domain。如果您要验证ca后缀是否存在,请将 变量设置为ca。 -
确保
state变量设置为verify。不允许使用其他选项。
这是当前示例修改的 Ansible playbook 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
表示
- 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory verify-topologysuffix-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory verify-topologysuffix-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. 使用 Ansible 重新初始化 IdM 副本 复制链接链接已复制到粘贴板!
如果副本已离线很长时间或者其数据库已损坏,您可以重新初始化它。重新初始化会使用更新的一组数据刷新副本。例如,如果需要从备份进行权威恢复,则可以使用重新初始化。
与复制更新不同,副本仅互相发送更改的条目,重新初始化会刷新整个数据库。
运行命令的本地主机是重新初始化的副本。要指定从中获取数据的副本,请使用 direction 选项。
按照以下流程,使用 Ansible playbook 从 server.idm.example.com 中重新初始化 replica.idm.example.com 上的 domain 数据。
先决条件
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点,也就是在其上执行
ansible-freeipa模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
步骤
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
ansible-freeipa软件包提供的reinitialize-topologysegment.ymlAnsible playbook 文件:cp /usr/share/doc/ansible-freeipa/playbooks/topology/reinitialize-topologysegment.yml reinitialize-topologysegment-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/reinitialize-topologysegment.yml reinitialize-topologysegment-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
reinitialize-topologysegment-copy.yml文件进行编辑。 通过在
ipatopologysegment部分中设置以下变量来调整文件:-
表示
ipaadmin_password变量的值在 secret.yml Ansible vault 文件中定义。 -
将
suffix变量设置为domain。如果您要重新初始化ca数据,请将变量设置为ca。 -
将
left变量设置为复制协议的左侧节点。 -
将
right变量设置为复制协议的右节点。 -
将
direction变量设置为重新初始化数据的方向。left-to-right方向表示数据从左侧节点流到右侧节点。 确保将
state变量设置为reinitialized。这是当前示例修改的 Ansible playbook 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
表示
- 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory reinitialize-topologysegment-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory reinitialize-topologysegment-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. 使用 Ansible 确保 IdM 中没有复制协议 复制链接链接已复制到粘贴板!
存储在身份管理 (IdM) 服务器上的数据存储基于复制协议:配置了两个服务器时,它们共享其数据。复制协议始终为现实:数据从第一个副本复制到另一个副本,另一个副本复制到第一个副本。
按照以下流程确保 IdM 中不存在两个副本之间的复制协议。这个示例描述了如何确保在 replica01.idm.example.com 和 replica02.idm.example.com IdM 服务器之间不存在 domain 类型的复制协议。
先决条件
- 您理解设计 连接拓扑中的副本 中列出的 IdM 拓扑的建议。
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点,也就是在其上执行
ansible-freeipa模块的节点,是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
步骤
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
ansible-freeipa软件包提供的delete-topologysegment.ymlAnsible playbook 文件:cp /usr/share/doc/ansible-freeipa/playbooks/topology/delete-topologysegment.yml delete-topologysegment-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/delete-topologysegment.yml delete-topologysegment-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
delete-topologysegment-copy.yml文件进行编辑。 通过在
ipatopologysegment任务部分设置以下变量来调整文件:-
表示
ipaadmin_password变量的值在 secret.yml Ansible vault 文件中定义。 -
将
suffix变量设置为domain。或者,如果您确保ca数据不在左侧和右侧节点之间复制,请将变量设置为ca。 -
将
left变量设置为您要作为复制协议左侧节点的 IdM 服务器的名称。 -
将
right变量设置为 IdM 服务器的名称,该服务器是复制协议的右节点。 -
确保
state变量设置为absent。
这是当前示例修改的 Ansible playbook 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
表示
- 保存这个文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
ansible-playbook --vault-password-file=password_file -v -i inventory delete-topologysegment-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory delete-topologysegment-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 使用 Healthcheck 检查 IdM 复制 复制链接链接已复制到粘贴板!
您可以使用 Healthcheck 工具测试身份管理(IdM)复制。
先决条件
- 您在使用 RHEL 版本 8.1 或更新版本。
5.1. IdM 复制和拓扑 Healthcheck 测试 复制链接链接已复制到粘贴板!
Healthcheck 工具包含身份管理(IdM)拓扑配置的测试。测试会搜索复制冲突问题。
您可以在 ipa-healthcheck --list-sources 命令的输出的 ipahealthcheck.ipa.topology 和 ipahealthcheck.ds.replication 源下找到 IPATopologyDomainCheck 和 ReplicationConflictCheck 测试。
- IPATopologyDomainCheck
测试以下配置:
- 没有 IdM 服务器与拓扑断开连接。
- IdM 服务器没有超过推荐的复制协议数量。
如果测试成功,则测试会返回配置的域。否则,将报告特定的连接错误。
注意测试为
domain后缀运行ipa topologysuffix-verify命令。如果在此服务器上配置了 IdM 证书颁发机构服务器角色,则它也会为ca后缀运行该命令。- ReplicationConflictCheck
-
搜索 LDAP 匹配中的条目
(& (! (objectclass=nstombstone)) (nsds5ReplConflict 3.3.0))。
5.2. 使用 Healthcheck 检查复制 复制链接链接已复制到粘贴板!
按照以下步骤,使用 Healthcheck 工具运行身份管理(IdM)复制和拓扑配置的独立手动测试。
先决条件
-
您有
root特权。
步骤
输入:
ipa-healthcheck --source=ipahealthcheck.ds.replication --source=ipahealthcheck.ipa.topology
# ipa-healthcheck --source=ipahealthcheck.ds.replication --source=ipahealthcheck.ipa.topologyCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
--source=ipahealthcheck.ds.replicationand--source=ipahealthcheck.ipa.topology选项可确保 IdM Healthcheck 只执行复制冲突和拓扑测试。
可能有四个不同的结果:
SUCCESS — 测试成功通过。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - WARNING — 测试通过但可能会有问题。
ERROR — 测试失败。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - CRITICAL — 测试失败,它会影响 IdM 服务器的功能。
-
当尝试检查问题时,在所有 IdM 服务器中运行这些测试。