49.4. 使用 Ansible 创建 ID 视图,其域解析顺序
您可以使用 ansible-freeipa
idview
模块在 Identity Management (IdM)部署中添加、修改和删除 ID 视图。例如,您可以使用域解析顺序创建 ID 视图来启用简短名称表示法。
短名称表示法从 Active Directory (AD)替换完整的用户名,如 aduser05@ad.example.com,并带有短登录信息,本例中为 aduser05。这意味着,当使用 SSH
登录到 IdM 客户端时,aduser05 可以输入 ssh
aduser05@client.idm.example.com 而不是 ssh
aduser05@ad.example.com@client.idm.example.com。这同样适用于其他命令,如 id
。
完成此流程以使用 Ansible:
- 定义用于短名称资格的冒号分隔域字符串。在示例中,字符串是 ad.example.com:idm.example.com。
- 创建一个 ID 视图,以指示 SSSD 首先在字符串中标识的第一个域中搜索用户名。在示例中,这是 ad.example.com。
- 将 ID 视图应用到特定的主机。在示例中,这是 testhost.idm.example.com。
您只能将一个 ID 视图应用到 IdM 客户端。应用新的 ID 视图(如果适用)会自动删除以前的 ID 视图。
先决条件
在控制节点上:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装
ansible-freeipa
软件包。 - 您已在 ~/MyPlaybooks/ 目录中创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 您使用 RHEL 8.10 及更新的版本。
-
您已将
ipaadmin_password
存储在 secret.yml Ansible vault 中。
- testhost.idm.example.com 是一个 IdM 客户端。
-
目标节点(这是执行
ansible-freeipa
模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本的一部分。
流程
进入 ~/MyPlaybooks/ 目录,并使用以下内容创建一个 Ansible playbook 文件 add-id-view-with-domain-resolution-order.yml :
--- - name: Playbook to add idview and apply it to an IdM client hosts: ipaserver vars_files: - /home/<user_name>/MyPlaybooks/secret.yml become: false gather_facts: false tasks: - name: Add idview and apply it to testhost.idm.example.com ipaidview: ipaadmin_password: "{{ ipaadmin_password }}" name: test_idview host: testhost.idm.example.com domain_resolution_order: "ad.example.com:ipa.example.com"
运行 playbook。指定 playbook 文件、存储保护 secret.yml 文件的密码,以及清单文件:
$ ansible-playbook --vault-password-file=password_file -v -i inventory add-id-view-with-domain-resolution-order.yml
验证
- SSH 到 testhost.idm.example.com。
验证您只能使用短名称从 ad.example.com 域检索用户的用户信息。
[root@testhost ~]# id aduser05 uid=1916901102(aduser05) gid=1916900513(domain users) groups=1916900513(domain users)