您必须先通过几个步骤准备环境,然后才能开始使用 vSphere Auto Deploy。

首先设置服务器并准备硬件。必须在计划用于管理置备的主机的 vCenter Server 系统中配置 vSphere Auto Deploy 服务启动类型,然后安装 vSphere PowerCLI

vSphere Auto Deploy 预安装对照表

开始此 vSphere Auto Deploy 方案中的任务之前,请确保您的环境满足硬件和软件要求,并且您具有该安装中所包含组件的必要权限。

表 1. 预安装对照表
所需软件和硬件 详细信息
vCenter Server vSphere Auto Deploy 服务器是 vCenter Server 的一部分。必须在 vCenter Server 系统上启用和启动 vSphere Auto Deploy 服务。可以通过登录到 vCenter Server 来执行许多设置任务。请参见为系统准备 vSphere Auto Deploy
存储

ESXi 数据存储的存储(NFS、iSCSI 或光纤通道),对服务器和存储阵列进行配置,从而使服务器能够检测到 LUN。

  • NFS 或 iSCSi 的目标 IP 地址的列表。
  • NFS 或 iSCSi 的目标卷信息的列表。
主机信息(对于四个 ESXi 主机)

NFS 或 iSCSi 的目标 IP 地址的列表。

NFS 或 iSCSi 的目标卷信息的列表。

  • 默认路由、子网掩码以及主 DNS 服务器和辅助 DNS 服务器 IP 地址。
  • VMkernel 主管理网络的 IP 地址和子网掩码。
  • 其他 VMkernel 网络(如存储、vSphere FT 或 VMware vMotion)的 IP 地址和子网掩码。

默认情况下,vSphere Auto Deploy 不会覆盖现有分区。

vSphere PowerCLI 请参见安装 PowerCLI
ESXi 软件库 ESXi 软件库在 VMware 网站“下载”页面上的位置。使用 URL 指向该位置上存储的映像配置文件或下载 ZIP 文件以与本地库配合使用。请勿下载 ESXi 映像。
TFTP 服务器 TFTP 安装程序软件,如 WinAgents TFTP 服务器。
DHCP 服务器 vSphere 支持的 Windows Server 版本中包括 DHCP 服务器。
DNS 服务器 正常运行的 DNS 服务器。必须针对每个目标主机在正向(A 记录)和反向(PTR 记录)区域中添加条目。

还需要环境核心服务器的相关信息和管理员特权,核心服务器包括 ActiveDirectory 服务器、DNS 服务器、DHCP 服务器、NTP 服务器等。

必须能够完全控制将在其中部署设置的子网的广播域。请确保此子网中没有其他 DHCP、DNS 或 TFTP 服务器。

为系统准备 vSphere Auto Deploy

在可以通过 vSphere Auto Deploy 对 ESXi 主机进行 PXE 引导之前,必须安装必备软件并设置 vSphere Auto Deploy 与之交互的 DHCP 和 TFTP 服务器。

如果要使用 PowerCLI cmdlet 管理 vSphere Auto Deploy,请参见 使用 vSphere PowerCLI 设置 vSphere Auto Deploy 并置备主机

前提条件

  • 验证计划使用 vSphere Auto Deploy 进行置备的主机是否满足 ESXi 的硬件要求。请参见ESXi 硬件要求
  • 验证 ESXi 主机是否已与 vCenter Server 建立网络连接,且满足所有端口要求。请参见vCenter Server
  • 确认您的环境中有 TFTP 服务器和 DHCP 服务器可以向 Auto Deploy 置备的 ESXi 主机发送文件并分配网络地址。请参见
  • 验证 ESXi 主机与 DHCP、TFTP 和 vSphere Auto Deploy 服务器是否具有网络连接。
  • 如果在 vSphere Auto Deploy 环境中要使用 VLAN,必须正确设置端到端网络。PXE 引导主机时,必须将固件驱动程序设置为使用适当的 VLAN ID 来标记帧。这必须通过在 UEFI/BIOS 界面中进行正确的更改来手动进行。还必须使用正确的 VLAN ID 来正确配置 ESXi 端口组。请咨询网络管理员以了解 VLAN ID 在环境中的使用方式。
  • 验证您是否具有足够存储空间用于 vSphere Auto Deploy 存储库。vSphere Auto Deploy 服务器使用存储库存储其需要的数据,包括您创建的规则和规则集,以及在规则中指定的 VIB 和映像配置文件。

    最佳做法是分配 2 GB 以具有足够的空间容纳四个映像配置文件和一些额外空间。每个映像配置文件大约需要 400 MB。通过考虑希望使用的映像配置文件数量来确定为 vSphere Auto Deploy 存储库预留多少空间。

  • 获取对 DHCP 服务器(该服务器管理要从其进行引导的网络段)的管理特权。可以使用环境中已有的 DHCP 服务器或安装一台 DHCP 服务器。对于 vSphere Auto Deploy 设置,请将 gpxelinux.0 文件名替换为 snponly64.efi.vmw-hardwired(对于 UEFI)或 undionly.kpxe.vmw-hardwired(对于 BIOS)。有关 DHCP 配置的详细信息,请参见示例 DHCP 配置
  • 就像保护使用任何其他基于 PXE 的部署方法的网络一样保护您的网络。vSphere Auto Deploy 通过 SSL 传输数据,以防止意外干扰和侦听。但是,在 PXE 引导期间不会检查客户端或 vSphere Auto Deploy 服务器的真实性。
  • 如果要使用 PowerCLI cmdlet 管理 vSphere Auto Deploy,请确认 Windows 计算机上装有 Microsoft .NET Framework 4.5 或 4.5.x 和 Windows PowerShell 3.0 或 4.0。请参见《vSphere PowerCLI 用户指南》
  • 设置远程 Syslog 服务器。有关 Syslog 服务器配置信息,请参见《vCenter Server 和主机管理》文档。将您引导的第一台主机配置为使用远程 Syslog 服务器并将主机的主机配置文件应用于所有其他目标主机。(可选)安装并使用 VMware vCenter Log Insight,它可为 VMware 产品和非 VMware 产品(虚拟和物理)提供日志聚合和分析,并提供准实时日志事件搜索和分析功能。
  • 安装 ESXi Dump Collector 并设置第一台主机,以便所有核心转储都指向 ESXi Dump Collector 并将该主机的主机配置文件应用于所有其他主机。
  • 如果您计划使用 vSphere Auto Deploy 置备的主机带有旧版 BIOS,请验证 vSphere Auto Deploy 服务器是否采用 IPv4 地址。使用旧版 BIOS 固件进行 PXE 引导只能通过 IPv4 实现。使用 UEFI 固件进行 PXE 引导可以通过 IPv4 或 IPv6 实现。

过程

  1. 导航到主页 > Auto Deploy
    默认情况下,只有管理员角色才有权使用 vSphere Auto Deploy 服务。
  2. Auto Deploy 页面上,从顶部下拉菜单中选择您的 vCenter Server
  3. 单击启用 Auto Deploy 和 Image Builder 以激活服务。
    如果 Image Builder 服务已处于活动状态,请选择 配置选项卡,然后单击 启用 Auto Deploy 服务
    此时将显示 软件库页面。
  4. 配置 TFTP 服务器。
    1. 单击配置选项卡。
    2. 单击下载 TFTP Boot Zip 以下载 TFTP 配置文件,并将该文件解压缩到 TFTP 服务器存储文件的目录下。
    3. (可选) 要使用代理服务器,请单击 Auto Deploy 运行时摘要窗格上的添加,然后在文本框中输入代理服务器 URL。
      使用反向代理服务器可以卸载对 vSphere Auto Deploy 服务器发出的请求。
  5. 设置 DHCP 服务器,以指向 TFTP ZIP 文件所在的 TFTP 服务器。
    1. 在 DHCP 选项 66(通常称为 next-server)中指定 TFTP 服务器的 IP 地址。
    2. 在 DHCP 选项 67 中指定引导文件名(通常叫作 boot-filename);对于 UEFI,它是 snponly64.efi.vmw-hardwired,而对于 BIOS,它是 undionly.kpxe.vmw-hardwired
  6. 按照制造商的说明将要使用 vSphere Auto Deploy 置备的每个主机设置为网络引导或 PXE 引导。
  7. (可选) 如果将环境设置为使用指纹模式,则通过将 OpenSSL 证书 rbd-ca.crt 和 OpenSSL 专用密钥 rbd-ca.key 替换为自己的证书和密钥文件,便可使用自己的证书颁发机构 (CA)。
    这些文件位于 /etc/vmware-rbd/ssl/ 中。
    默认情况下, vCenter Server 使用 VMware Certificate Authority (VMCA)。

结果

在启动为 vSphere Auto Deploy 设置的 ESXi 主机时,该主机会与 DHCP 服务器联系并直接指向 vSphere Auto Deploy 服务器,这将使用活动规则集中指定的映像配置文件置备该主机。

下一步做什么

  • 可以更改 Auto Deploy 服务的默认配置属性。有关详细信息,请参见《vCenter Server 和主机管理》文档中的“配置 vCenter Server”。
  • 可以更改 Image Builder 服务的默认配置属性。有关详细信息,请参见《vCenter Server 和主机管理》文档中的“配置 vCenter Server”。
  • 定义一个将映像配置文件和可选主机配置文件、主机位置或脚本包分配给主机的规则。
  • (可选) 配置第一台置备为引用主机的主机。使用要针对目标主机共享的存储、网络和其他设置。为该引用主机创建主机配置文件,并编写将已测试的映像配置文件和主机配置文件分配给目标主机的规则。
  • (可选) 如果要使 vSphere Auto Deploy 覆盖现有分区,请将引用主机设置为进行自动分区并将引用主机的主机配置文件应用于其他主机。
  • (可选) 如果必须配置特定于主机的信息,可以设置引用主机的主机配置文件,以便提示用户输入。有关主机自定义的详细信息,请参见《《vSphere 主机配置文件》》文档。

使用 vSphere Auto Deploy Cmdlet

vSphere Auto Deploy cmdlet 作为 Microsoft PowerShell cmdlet 实施并包含在 vSphere PowerCLI 中。vSphere Auto Deploy cmdlet 的用户可以利用所有的 vSphere PowerCLI 功能。

具有丰富经验的 PowerShell 用户可以像使用其他 PowerShell cmdlet 一样使用 vSphere Auto Deploy cmdlet。如果您是 PowerShell 和 vSphere PowerCLI 的新用户,以下提示可能对您有所帮助。

您可以在 vSphere PowerCLI shell 中键入 cmdlet、参数和参数值。

  • 通过运行 Get-Helpcmdlet_name 获取有关任何 cmdlet 的帮助。
  • 请记住,PowerShell 不区分大小写。
  • 对 cmdlet 名称和参数名称使用 Tab 自动补全。
  • 使用 Format-ListFormat-Table,或者它们的缩写 flft 格式化任何变量和 cmdlet 输出。有关详细信息,请运行 Get-Help Format-List cmdlet。

通过名称传递参数

在大多数情况下,可以通过名称传递参数,并使用双引号将包含空格或特殊字符的参数值引起来。
 Copy-DeployRule -DeployRule testrule -ReplaceItem MyNewProfile

《vCenter Server 安装和设置》文档中的大多数示例均按名称传递参数。

将参数作为对象传递

如果希望执行脚本操作并实现自动化,则可以将参数作为对象传递。将参数作为对象传递对于返回多个对象和返回单个对象的 cmdlet 都有用。请参见下面的示例:

  1. 将封装主机规则集合规信息的对象绑定到变量。
    $tr = Test-DeployRuleSetCompliance MyEsxi42
  2. 查看对象的 itemlist 属性以查看规则集中的规则与主机当前使用的规则之间有何差异。
    $tr.itemlist
  3. 通过将 Repair-DeployRuleSetCompliance cmdlet 与变量结合使用来修复主机,从而使用修改后的规则集。
    Repair-DeployRuleSetCompliance $tr

该示例将在下次引导主机时修复主机。

设置批量许可

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

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

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

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

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

前提条件

为系统准备 vSphere Auto Deploy.

过程

  1. vSphere 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

结果

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