可通过将自定义脚本与 vSphere Auto Deploy 规则相关联来使用 vSphere Auto Deploy 配置一个或多个主机。
脚本在主机的初始 ESXi 引导工作流后按字母顺序运行。
前提条件
- 确认要与 vSphere Auto Deploy 规则关联的脚本包采用 .tgz 格式、最大大小为 10 MB 且以 Python 或 BusyBox ash 脚本语言编写。
过程
- 在 PowerCLI 会话中,运行 Connect-VIServer cmdlet 以连接到已注册了 vSphere Auto Deploy 的 vCenter Server 系统。
Connect-VIServer ipv4_or_ipv6_address
Cmdlet 可能会返回服务器证书警告。在生产环境中,请确保不会产生服务器证书警告。在开发环境中,可以忽略此警告。
- 运行 Add-ScriptBundle cmdlet 以将包含必要脚本的脚本包添加到 vSphere Auto Deploy 清单中。
Add-ScriptBundle c:/temp/MyScriptBundle.tgz
没有
.tgz 扩展名的脚本包名称是脚本包项的名称标识符或对象。可以使用
-Update 参数和
Add-ScriptBundle cmdlet 更新现有脚本包。
- (可选) 运行 Get-ScriptBundle cmdlet 以验证脚本包是否已添加到 vSphere Auto Deploy 清单。
- 定义一个规则,将具有某些属性(例如 IP 地址范围)的主机分配给脚本包。
New-DeployRule -Name "testrule4" -Item "MyScriptBundle" -Pattern "vendor=Acme,Zven", "ipv4=192.XXX.1.10-192.XXX.1.20"
如果名称包含空格,则必须使用双引号,否则可自由选择是否使用双引号。指定 -AllHosts(而非模式),将项应用于所有主机。
将创建名为
testrule4 的规则。该规则将名为 My Script Bundle 的脚本包分配给供应商为 Acme 或 Zven 且 IP 地址在指定范围内的所有主机。您可以使用脚本包的名称标识符或
Get-ScriptBundle cmdlet 返回的对象来标识要与该规则关联的脚本包。
- 将规则添加到规则集。
默认情况下,该规则将添加到工作规则集和活动规则集。如果使用
NoActivate 参数,则工作规则集不会成为活动规则集。
下一步做什么
- 对于已使用 vSphere Auto Deploy 置备的主机,请执行合规性测试和修复操作,以使用新的脚本对其进行置备。请参见测试和修复规则合规性。
- 打开未置备的主机,以使用新的脚本对其进行置备。