可通过将自定义脚本与 vSphere Auto Deploy 规则相关联来使用 vSphere Auto Deploy 配置一个或多个主机。

脚本在主机的初始 ESXi 引导工作流后按字母顺序运行。

前提条件

  • 确认要与 vSphere Auto Deploy 规则关联的脚本包采用 .tgz 格式、最大大小为 10 MB 且以 Python 或 BusyBox ash 脚本语言编写。

过程

  1. PowerCLI 会话中,运行 Connect-VIServer cmdlet 以连接到已注册了 vSphere Auto Deploy 的 vCenter Server 系统。
    Connect-VIServer ipv4_or_ipv6_address
    Cmdlet 可能会返回服务器证书警告。在生产环境中,请确保不会产生服务器证书警告。在开发环境中,可以忽略此警告。
  2. 运行 Add-ScriptBundle cmdlet 以将包含必要脚本的脚本包添加到 vSphere Auto Deploy 清单中。
    Add-ScriptBundle c:/temp/MyScriptBundle.tgz
    没有 .tgz 扩展名的脚本包名称是脚本包项的名称标识符或对象。可以使用 -Update 参数和 Add-ScriptBundle cmdlet 更新现有脚本包。
  3. (可选) 运行 Get-ScriptBundle cmdlet 以验证脚本包是否已添加到 vSphere Auto Deploy 清单。
  4. 定义一个规则,将具有某些属性(例如 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 返回的对象来标识要与该规则关联的脚本包。
  5. 将规则添加到规则集。
    Add-DeployRule testrule4
    默认情况下,该规则将添加到工作规则集和活动规则集。如果使用 NoActivate 参数,则工作规则集不会成为活动规则集。

下一步做什么

  • 对于已使用 vSphere Auto Deploy 置备的主机,请执行合规性测试和修复操作,以使用新的脚本对其进行置备。请参见测试和修复规则合规性
  • 打开未置备的主机,以使用新的脚本对其进行置备。