51.3. 使用 Ansible 启用 AD 用户管理 IdM
按照以下流程,使用 Ansible playbook 确保用户 ID 覆盖在身份管理(IdM)组中存在。用户 ID 覆盖是您在使用 AD 建立信任视图中创建的 Active Directory (AD) 用户覆盖。因此,运行 playbook (如 AD 用户)能够完全管理 IdM,而无需两个不同的帐户和密码。
先决条件
-
您需要知道 IdM
admin
密码。 - 安装了使用 AD 的信任。
-
IdM 中已存在 AD 用户的用户 ID 覆盖。如果没有,使用
ipa idoverrideuser-add 'default trust view' ad_user@ad.example.com
命令创建它。 - 您要添加到用户 ID 覆盖的组在 IdM 中已存在。
-
您可以使用 IdM 或更高版本的 4.8.7 版本。要查看您在服务器上安装的 IdM 版本,请输入
ipa --version
。 您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已在 Ansible 控制器上安装了
ansible-freeipa
软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password
。
-
目标节点(这是执行
ansible-freeipa
模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本的一部分。
流程
进入您的 ~/MyPlaybooks/ 目录:
$ cd ~/MyPlaybooks/
使用以下内容创建
add-useridoverride-to-group.yml
playbook:--- - name: Playbook to ensure presence of users in a group hosts: ipaserver - name: Ensure the ad_user@ad.example.com user ID override is a member of the admins group: ipagroup: ipaadmin_password: "{{ ipaadmin_password }}" name: admins idoverrideuser: - ad_user@ad.example.com
在示例中:
-
Secret123 是 IdM
admin
密码。 -
admins
是您要添加 ad_user@ad.example.com ID 覆盖的 IdM POSIX 组的名称。此组中的成员具有全部的管理员特权。 - ad_user@ad.example.com 是 AD 管理员的用户 ID 覆盖。用户存储在已建立信任的 AD 域中。
-
Secret123 是 IdM
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-useridoverride-to-group.yml
其他资源
- AD 用户的 ID 覆盖
- /usr/share/doc/ansible-freeipa/README-group.md
- /usr/share/doc/ansible-freeipa/playbooks/user
- 在 Active Directory 环境中使用 ID 视图