第 33 章 使用 Ansible playbook 安装身份管理客户端
了解如何使用 Ansible 将系统配置为身份管理(IdM)客户端。将系统配置为 IdM 客户端将其注册到 IdM 域中,并让系统在域中的 IdM 服务器中使用 IdM 服务。
				部署是由 ipaclient Ansible 角色来管理的。默认情况下,该角色使用 autodiscovery 模式来识别 IdM 服务器、域和其他设置。角色可以被修改为使用 Ansible playbook 使用指定的设置,例如在清单文件中。
			
先决条件
- 您已在 Ansible 控制节点上安装了 ansible-freeipa 软件包。
- 您在使用 Ansible 版本 2.15 或更高版本。
- 您了解了一般的 Ansible 和 IdM 概念。
33.1. 为自动发现客户端安装模式设置清单文件的参数
					要使用 Ansible playbook 安装身份管理(IdM)客户端,请在清单文件(如 inventory)中配置目标主机参数 :
				
- 有关主机的信息
- 任务的授权
					根据您拥有的清单插件,清单文件可以采用多种格式。INI 格式是 Ansible 的默认值之一,如下例中使用。
				
						要在 RHEL 中将智能卡与图形用户界面搭配使用,请确保在 Ansible playbook 中包含 ipaclient_mkhomedir 变量。
					
流程
- 
							打开 inventory文件进行编辑。
- 指定要成为 IdM 客户端的主机的完全限定主机名(FQDN)。完全限定域名必须是有效的 DNS 名称: - 
									仅允许数字、字母字符和连字符(-)。例如,不允许使用下划线,这可能导致 DNS 失败。
- 主机名必须都是小写。不允许使用大写字母。
 - 如果在 IdM DNS 区中正确设置了 SRV 记录,该脚本会自动发现所有其他必要的值。 - 只带有客户端 FQDN 定义的简单的清单主机文件示例 - [ipaclients] client.idm.example.com [...] - [ipaclients] client.idm.example.com [...]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
									仅允许数字、字母字符和连字符(
- 指定注册客户端的凭证。可用的验证方法如下: - 注册 客户端的用户权限的密码。这是默认选项。 - 使用 Ansible Vault 来存储密码,并从 playbook 文件(如 - install-client.yml)中引用 Vault 文件:- 使用来自清单文件和 Ansible Vault 文件中的密码的主体的 playbook 文件示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 - inventory/hosts文件的- [ipaclients:vars]部分中使用- ipaadmin_password选项来提供- admin的凭证不太安全。或者,指定不同的授权用户,请使用- ipaadmin_principal选项作为用户名,使用- ipaadmin_password选项作为密码。然后,- inventory/hosts清单文件和- install-client.ymlplaybook 文件类似如下:- 清单主机文件示例 - [...] [ipaclients:vars] ipaadmin_principal=my_admin ipaadmin_password=Secret123 - [...] [ipaclients:vars] ipaadmin_principal=my_admin ipaadmin_password=Secret123- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 使用清单文件中的主体和密码的 Playbook 示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 之前的注册的 客户端 keytab ,如果其仍然可用。 - 如果系统之前作为身份管理客户端注册,则可以使用这个选项。要使用此身份验证方法,请取消 - #ipaclient_keytab选项的注释,指定存储 keytab 的文件的路径,例如在- inventory/hosts的- [ipaclient:vars]部分。
- 在注册过程中生成的随机一次性密码 (OTP)。要使用此身份验证方法,请在清单文件中使用 - ipaclient_use_otp=true选项。例如,您可以取消- inventory/hosts文件的- [ipaclients:vars]部分中的- ipaclient_use_otp=true选项的注释。请注意,对于 OTP,还必须指定以下选项之一:- 
											授权注册客户端的用户的密码 ,例如,为 inventory/hosts文件的[ipaclients:vars]部分的ipaadmin_password提供值。
- 
											admin keytab,例如,为 inventory/hosts的[ipaclients:vars]部分中的ipaadmin_keytab提供值。
 
- 
											授权注册客户端的用户的密码 ,例如,为 
 
- 可选:使用 - ipaclient_configure_dns_resolve和- ipaclient_dns_servers选项(如果可用)指定 DNS 解析器来简化集群部署。这在您的 IdM 部署使用集成的 DNS 时特别有用:- 指定 DNS 解析器的清单文件片段: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- ipaclient_dns_servers列表必须仅包含 IP 地址。主机名不允许。
- 
							从 RHEL 8.9 开始,您还可以指定 ipaclient_subid: true选项,以便为 IdM 级别上的 IdM 用户配置 subid 范围。