33.5. 在 Ansible 中使用一次性密码方法安装 IdM 客户端
您可以为身份管理(IdM)中的新主机生成一次性密码(OTP),并使用它来将系统注册到 IdM 域中。此流程描述了如何在为另一个 IdM 主机生成 OTP 后使用 Ansible 安装 IdM 客户端。
如果机构中存在具有不同权限的两个系统管理员,则安装 IdM 客户端的这个方法非常方便:
- 一个具有 IdM 管理员凭证。
-
另一个具有所需的 Ansible 凭据,包括主机
root
访问权限,成为 IdM 客户端。
IdM 管理员执行生成 OTP 密码的步骤的第一个部分。Ansible 管理员执行流程的剩余部分,其中 OTP 用于安装 IdM 客户端。
先决条件
-
您有 IdM
admin
凭证或至少具有Host Enrollment
特权以及在 IdM 中添加 DNS 记录的权限。 - 您已在 Ansible 受管节点上配置了用户升级方法,以便您安装 IdM 客户端。
- 如果您的 Ansible 控制节点在 RHEL 8.7 或更早版本上运行,则必须能够在 Ansible 控制节点上安装软件包。
您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已在 Ansible 控制器上安装了
ansible-freeipa
软件包。 - 您已创建了带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
- 受管节点是一个具有静态 IP 地址和可正常工作的软件包管理器的 Red Hat Enterprise Linux 8 系统。
流程
以具有
Host Enrollment
权限和添加 DNS 记录权限的 IdM 用户身份SSH
到 IdM 主机:$ ssh admin@server.idm.example.com
为新客户端生成 OTP:
[admin@server ~]$ ipa host-add client.idm.example.com --ip-address=172.25.250.11 --random -------------------------------------------------- Added host "client.idm.example.com" -------------------------------------------------- Host name: client.idm.example.com Random password: W5YpARl=7M.n Password: True Keytab: False Managed by: server.idm.example.com
--ip-address= <your_host_ip_address > 选项将主机添加到带有指定 IP 地址的 IdM DNS 中。
退出 IdM 主机:
$ exit logout Connection to server.idm.example.com closed.
在 ansible 控制器上,更新清单文件使其包含随机密码:
[...] [ipaclients] client.idm.example.com [ipaclients:vars] ipaclient_domain=idm.example.com ipaclient_otp=W5YpARl=7M.n [...]
如果您的 ansible 控制器正在运行 RHEL 8.7 或更早版本,请安装
krb5-workstation
软件包提供的kinit
工具:$ sudo dnf install krb5-workstation
运行 playbook 来安装客户端:
$ ansible-playbook -i inventory install-client.yml