可以使用 vSphere Client 或 ESXi 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 用户。
过程
- 在 PowerCLI 会话中,连接到想使用的 vCenter Server 系统,并将关联的许可证管理器绑定到某个变量。
Connect-VIServer -Server 192.XXX.X.XX -User username -Password password
$licenseDataManager = Get-LicenseDataManager
- 运行检索数据中心的 cmdlet,要对其使用批量许可功能的主机位于该数据中心中。
$hostContainer = Get-Datacenter -Name Datacenter-X
也可以运行检索集群的 cmdlet 以对集群中的所有主机使用批量许可,或者运行检索文件夹的 cmdlet 以对文件夹中的所有主机使用批量许可。
- 创建 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"
- 将步骤 3 中创建的 LicenseData 对象的 LicenseKeys 属性与 LicenseKeyEntry 对象关联。
$licenseData.LicenseKeys += $licenseKeyEntry
- 使用 LicenseData 对象更新数据中心的许可证数据,并验证许可证是否与主机容器关联。
$licenseDataManager.UpdateAssociatedLicenseData($hostContainer.Uid, $licenseData)
$licenseDataManager.QueryAssociatedLicenseData($hostContainer.Uid)
- 使用 vSphere Auto Deploy 置备一个或多个主机,并将这些主机分配到为其分配许可证数据的数据中心或集群中。
- 可以使用 vSphere Client 以验证主机是否成功分配到默认许可证
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
。
结果
所有分配到数据中心的主机现在均已自动获得许可。