可以使用 vSphere ClientESXi Shell 指定各个许可证密钥,或使用 PowerCLI cmdlet 设置批量许可。批量许可适用于所有 ESXi 主机,但对使用 vSphere Auto Deploy 置备的主机尤其有用。

通过 vSphere Client 分配许可证密钥和使用 PowerCLI cmdlet 分配许可的工作方式不同。

使用 vSphere Client 分配许可证密钥
将主机添加到 vCenter Server 系统时或主机由 vCenter Server 系统管理时,可为主机分配许可证密钥。
使用 LicenseDataManager PowerCLI 分配许可证密钥
可以指定添加到一组主机中的一组许可证密钥。这些许可证将添加到 vCenter Server 数据库中。每当将主机添加到 vCenter Server 系统或将主机重新连接到该系统时,都会为主机分配许可证密钥。通过 PowerCLI 分配的许可证密钥被视为默认的许可证密钥。添加或重新连接未获许可的主机时,将为主机分配默认的许可证密钥。如果主机已获得许可,则可保留其许可证密钥。

下面的示例为数据中心中的所有主机分配许可证。您也可将许可证与主机和集群关联。

以下示例适用于了解如何使用 PowerShell 变量的高级 PowerCLI 用户。

前提条件

为系统准备 vSphere Auto Deploy.

过程

  1. PowerCLI 会话中,连接到想使用的 vCenter Server 系统,并将关联的许可证管理器绑定到某个变量。
    Connect-VIServer -Server 192.XXX.X.XX -User username -Password password
    $licenseDataManager = Get-LicenseDataManager
    
  2. 运行检索数据中心的 cmdlet,要对其使用批量许可功能的主机位于该数据中心中。
    $hostContainer = Get-Datacenter -Name Datacenter-X
    也可以运行检索集群的 cmdlet 以对集群中的所有主机使用批量许可,或者运行检索文件夹的 cmdlet 以对文件夹中的所有主机使用批量许可。
  3. 创建 LicenseData 对象以及具有关联类型 ID 和许可证密钥的 LicenseKeyEntry 对象。
    $licenseData = New-Object VMware.VimAutomation.License.Types.LicenseData
    $licenseKeyEntry = New-Object Vmware.VimAutomation.License.Types.LicenseKeyEntry
    $licenseKeyEntry.TypeId = "vmware-vsphere"
    $licenseKeyEntry.LicenseKey = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
  4. 将步骤 3 中创建的 LicenseData 对象的 LicenseKeys 属性与 LicenseKeyEntry 对象关联。
    $licenseData.LicenseKeys += $licenseKeyEntry
  5. 使用 LicenseData 对象更新数据中心的许可证数据,并验证许可证是否与主机容器关联。
    $licenseDataManager.UpdateAssociatedLicenseData($hostContainer.Uid, $licenseData)
    $licenseDataManager.QueryAssociatedLicenseData($hostContainer.Uid)
    
  6. 使用 vSphere Auto Deploy 置备一个或多个主机,并将这些主机分配到为其分配许可证数据的数据中心或集群中。
  7. 可以使用 vSphere Client 以验证主机是否成功分配到默认许可证 XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

结果

所有分配到数据中心的主机现在均已自动获得许可。