部署后,您可以在参考机上安装客户机代理,用于进一步自定义计算机。您既可以使用预留的客户机代理自定义属性执行添加和格式化磁盘等基本自定义操作,也可以为要在已置备计算机的客户机操作系统中运行的客户机代理创建自己的自定义脚本。

完成部署并运行自定义规范(如果已提供)后,客户机代理将创建一个包含已部署计算机的所有自定义属性的 XML 文件 (c:\VRMGuestAgent\site\workitem.xml),使用客户机代理自定义属性完成为其分配的任何任务,然后将其自身从已置备计算机中删除。

您可以为要在已部署计算机上运行的客户机代理编写自己的自定义脚本,然后使用计算机蓝图上的自定义属性指定这些脚本的位置和运行顺序。此外,您还可以使用计算机蓝图上的自定义属性将自定义属性值作为参数传递给脚本。

例如,您可以使用客户机代理在已部署的计算机上自定义以下设置:

  • 更改 IP 地址

  • 添加或格式化驱动器

  • 运行安全脚本

  • 初始化另一个代理,例如 Puppet 或 Chef

您还可以在命令行参数中提供加密字符串作为自定义属性。这使您可以将客户机代理能够解密和理解的加密信息作为有效的命令行参数进行存储。

自定义脚本不必本地安装在计算机上。只要已置备的计算机可以通过网络访问脚本位置,客户机代理便能访问并运行这些脚本。这降低了维护成本,因为您无需重新构建所有模板即可更新脚本。

您可以通过在预留、蓝图或客户机代理脚本中指定信息,为要置备的虚拟机配置安全设置。如果要置备的计算机需要客户机代理,您必须将包含该要求的安全规则添加到预留或蓝图。例如,如果您使用拒绝所有计算机之间的通信的默认安全策略,并依赖不同的安全策略以允许特定计算机之间的通信,则客户机代理在自定义阶段可能无法与 vRealize Automation 通信。要避免在计算机置备期间出现此问题,请使用允许在自定义阶段进行通信的默认安全策略。

如果选择通过安装客户机代理在已置备计算机上运行自定义脚本,则蓝图必须包括相应的客户机代理自定义属性。例如,如果将客户机代理安装在克隆模板上,创建一个自定义脚本来更改已置备计算机的 IP 地址,并将该脚本放在共享位置中,则需在蓝图中包含大量自定义属性。

表 1. 用于通过客户机代理更改已置备计算机的 IP 地址的自定义属性

自定义属性

描述

VirtualMachine.Admin.UseGuestAgent

设置为 true 时,将在启动已置备的计算机后初始化客户机代理。

VirtualMachine.Customize.WaitComplete

设置为 True 时,可防止置备工作流在所有自定义完成之前将工作项发送到客户机代理。

VirtualMachine.SoftwareN.ScriptPath

指定应用程序安装脚本的完整路径。该路径必须是客户机操作系统看到的有效绝对路径,且必须包含该脚本文件名的名称。

通过在路径字符串中插入 {CustomPropertyName},您可以将自定义属性值作为参数传递给脚本。例如,如果您拥有值为 1234 的自定义属性 ActivationKey,则脚本路径为 D:\InstallApp.bat –key {ActivationKey}。客户机代理运行命令 D:\InstallApp.bat –key 1234。然后,您可以对脚本文件进行编程,使其接受并使用此值。

插入 {Owner} 可将计算机所有者名称传递给脚本。

通过在路径字符串中插入 {YourCustomProperty},您还可以将自定义属性值作为参数传递给脚本。例如,输入值 \\vra-scripts.mycompany.com\scripts\changeIP.bat 可从共享位置运行 changeIP.bat 脚本;但是,输入值 \\vra-scripts.mycompany.com\scripts\changeIP.bat {VirtualMachine.Network0.Address} 可在运行 changeIP 脚本的同时将 VirtualMachine.Network0.Address 属性的值作为参数传递给脚本。

VirtualMachine.ScriptPath.Decrypt

允许 vRealize Automation 获取作为格式正确的 VirtualMachine.SoftwareN.ScriptPath 自定义属性声明传递到 gugent 命令行的加密字符串。

您可以提供加密字符串(如您的密码)作为命令行参数中的自定义属性。这允许您存储客户机代理可解密并作为有效命令行参数理解的加密信息。例如,VirtualMachine.Software0.ScriptPath = c:\dosomething.bat password 自定义属性字符串由于包含实际密码,因此不安全。

要解密该密码,可以创建 vRealize Automation 自定义属性(例如 MyPassword = password),并通过选择可用复选框启用加密。客户机代理会将 [MyPassword] 条目解密为自定义属性 MyPassword 中的值并以 c:\dosomething.bat password 运行脚本。

  • 创建自定义属性 MyPassword = password,其中 password 是实际密码的值。通过选择可用复选框启用加密。

  • 将自定义属性 VirtualMachine.ScriptPath.Decrypt 设置为 VirtualMachine.ScriptPath.Decrypt = true

  • 将自定义属性 VirtualMachine.Software0.ScriptPath 设置为 VirtualMachine.Software0.ScriptPath = c:\dosomething.bat [MyPassword]

如果将 VirtualMachine.ScriptPath.Decrypt 设置为 False,或未创建 VirtualMachine.ScriptPath.Decrypt 自定义属性,则不会解密方括号([ 和 ])中的字符串。

有关可与客户机代理配合使用的自定义属性的详细信息,请参见《自定义属性参考》