5.5. 使用 Ansible 确保缺少 IdM 位置
在停用地理站点或重新构建拓扑时,使用 Ansible 从身份管理(IdM)中删除 DNS 位置。
作为身份管理系统管理员(IdM),您可以配置 IdM DNS 位置,以允许客户端在最接近的网络基础架构中查找身份验证服务器。
以下流程描述了如何使用 Ansible playbook 来确保 IdM 中没有 DNS 位置。这个示例描述了如何确保 IdM 中没有 germany DNS 位置。因此,您无法将特定的 IdM 服务器分配给这个位置,本地 IdM 客户端无法使用它们。
先决条件
- 没有 IdM 服务器被分配给 germany DNS 位置。
您已配置了 Ansible 控制节点以满足以下要求:
- 您在使用 Ansible 版本 2.15 或更高版本。
-
您已安装了
ansible-freeipa软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了您的
ipaadmin_password,并且您可以访问存储了保护 secret.yml 文件的密码的文件。
-
目标节点(也就是在其上执行
freeipa.ansible_freeipa模块的节点)作为 IdM 客户端、服务器或副本,是 IdM 域的一部分。 - 示例假定您已 创建并配置了 ~/MyPlaybooks/ 目录,来作为存储示例 playbook 副本的中心位置。
流程
进入 ~/MyPlaybooks/ 目录:
$ cd ~/MyPlaybooks/制作
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/目录中location-absent.yml文件的一个副本:$ cp /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location/location-absent.yml location-absent-copy.yml-
打开
location-absent-copy.ymlAnsible playbook 文件以进行编辑。 通过在
freeipa.ansible_freeipa.ipalocation任务部分设置以下变量来调整文件:-
调整任务的
name,使其与您的用例对应。 -
表示
ipaadmin_password变量的值已在 secret.yml Ansible vault 文件中定义。 -
将
name变量设置为 DNS 位置的名称。 -
确保
state变量设置为absent。
这是当前示例修改的 Ansible playbook 文件:
--- - name: location absent example hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure that the "germany" location is absent freeipa.ansible_freeipa.ipalocation: ipaadmin_password: "{{ ipaadmin_password }}" name: germany state: absent-
调整任务的
保存该文件。
有关 FreeIPA Ansible 集合中变量和示例 playbook 的详情,请查看控制节点上的
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-location.md文件和/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/location目录。运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
$ ansible-playbook --vault-password-file=password_file -v -i inventory location-absent-copy.yml