您可以针对 Windows 和 Linux 客户机操作系统创建和管理自定义规范。自定义规范是包含虚拟机的客户机操作系统设置的 XML 文件。

如果在虚拟机克隆或部署期间向客户机操作系统应用规范,则可以防止在部署具有相同设置的虚拟机时可能出现的冲突,例如,由于计算机名称重复而产生的冲突。

vCenter ServervCenter Server 数据库中保存自定义的配置参数。如果保存自定义设置,则管理员和域管理员密码将以加密格式存储在数据库中。因为用于加密密码的证书对每个 vCenter Server 系统是唯一的,所以如果重新安装 vCenter Server 或将新的服务器实例附加到数据库中,则会使加密的密码失效。您必须先重新输入密码,然后才能使用密码。

要了解如何在 vSphere Client 中创建和管理自定义规范,请观看以下视频。

创建 Linux 的自定义规范

在自定义规范中保存 Linux 客户机操作系统的系统设置,您可在克隆虚拟机或从模板部署虚拟机时应用这些设置。在云环境中部署虚拟机时,可以使用 cloud-init 实用程序作为一种标准化方法来初始化虚拟机。

前提条件

  • 验证满足所有自定义要求。请参见客户机操作系统自定义要求
  • 运行自定义脚本:
    • 确认已安装 VMware Tools 版本 10.1.0 或更高版本。如果 VMware Tools 版本低于 10.1.0,则您尝试运行自定义脚本时,自定义将失败。
    • 在 VMware Tools 配置中,出于安全原因,enable-custom-scripts 选项默认处于取消激活状态。尝试在 enable-custom-scripts 选项处于取消激活状态的情况下运行自定义脚本时,自定义将失败并显示自定义错误。
      例如,要启用 enable-custom-scripts 选项,必须使用 config 命令以 root 用户身份运行 vmware-toolbox-cmd
      vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
      cat /etc/vmware-tools/tools.conf
      [deployPkg]
      enable-custom-scripts = true
      要验证是否正确设置了该选项,可以运行以下命令:
      vmware-toolbox-cmd config get deployPkg enable-custom-scripts
      [deployPkg] enable-custom-scripts = true

      有关详细信息,请参见《VMware Tools 用户指南》

  • 要使用 cloud-init 元数据和用户数据自定义虚拟机的客户机操作系统,请满足以下必备条件:
    • 确认已安装 VMware Tools 版本 11.3.0 或更高版本。
    • 确认已安装 cloud-init 版本 21.1 或更高版本。

过程

  1. 单击菜单图标 (主导航图标),然后单击策略和配置文件
  2. 单击虚拟机自定义规范
  3. 要创建规范,请从虚拟机自定义规范窗格中,单击新建
    此时将打开 新建虚拟机客户机自定义规范向导。
  4. 名称和目标操作系统页面上,输入自定义规范的名称和描述,然后选择 Linux 作为目标客户机操作系统。
  5. (可选) 要使用原始 cloud-init 数据启动自定义,请执行以下操作:
    1. 选中使用 cloud-init 配置数据复选框,然后单击下一步
    2. Cloud-init 元数据页面上,将 cloud-init 元数据应用于虚拟机的客户机操作系统。
      有关元数据和用户数据格式的详细信息,请参见 VMware 知识库文章 ( https://kb.vmware.com/s/article/82250)。
      选项 操作
      上载 cloud-init 元数据文件

      cloud-init 元数据文件是 YAML 或 JSON 文件格式的纯文本。

      最大文件大小为 512 KB。

      • 单击上载,然后导航到本地计算机上的文件。

        文件的内容将显示在文本框中。

      输入 cloud-init 元数据脚本
      • (可选) 直接在文本框中输入元数据脚本。
    3. 单击下一步
    4. (可选) Cloud-init 用户数据上,将 cloud-init 用户配置应用于虚拟机的客户机操作系统。例如,可以将新用户添加到客户机操作系统。
      有关 cloud-init 用户数据的详细信息,请参见 Cloud-init 文档,网址为: https://cloudinit.readthedocs.io/en/latest/topics/format.html
      上载 cloud-init 用户数据文件

      cloud-init 用户数据文件是原始 cloud-init 格式的纯文本。

      最大文件大小为 512 KB。

      • 单击上载,然后导航到本地计算机上的文件。

        文件的内容将显示在文本框中。

      输入 cloud-init 用户数据
      • (可选) 直接在文本框中输入 cloud-init 用户数据脚本。
    5. 单击下一步
    6. 即将完成页面上,查看详细信息并单击完成以保存所做更改。
  6. (可选) 要初始化传统自定义,请执行以下操作:
    1. 计算机名称页面上,输入客户机操作系统的计算机名称和域名。
      客户机操作系统将使用此计算机名称在网络上标识自身。在 Linux 系统上,它称为主机名。
      选项 操作
      使用虚拟机名称 选择此选项以使用虚拟机名称。vCenter Server 创建的计算机名称与客户机操作系统正在运行的虚拟机名称相同。如果名称超过 63 个字符,它将被截断。
      在克隆/部署向导中输入名称 选择此选项后,系统会在克隆或部署期间提示您输入名称。
      输入名称
      • 输入名称。

        此名称可包含字母数字字符和连字符 (-)。它不能包含句点 (.)、空格或特殊字符,也不能仅包含数字。名称不区分大小写。

      • (可选) 要确保名称是唯一的,请选中附加数值复选框。

        该操作会在虚拟机名称后附加连字符后跟数值。与数值结合使用时,如果名称超过 63 个字符,就会被截断。

      使用借助于 vCenter Server 配置的自定义应用程序生成名称 输入可以传递到自定义应用程序的参数。
    2. 输入计算机的域名,并单击下一步
    3. 时区页面上,选择虚拟机的时区,然后单击下一步
    4. 自定义脚本页面上,将自定义脚本应用到虚拟机的客户机操作系统,然后单击下一步
      选项 操作
      上载包含自定义脚本的文件
      • 单击浏览,然后导航到本地计算机上的文件。脚本的内容将显示在脚本文本框中。
      输入自定义脚本 将自定义脚本直接输入到脚本文本框中。
      自定义脚本不能超过 1500 个字符。
      注:

      完成客户机自定义的默认超时时间段设置为 100 秒,并包含使用 "precustomization" 命令行参数时脚本运行的时间。如果您运行脚本所用的时间超过超时时间,客户机自定义将失败。

      使用 "precustomization" 命令行参数添加自定义脚本时,将在客户机自定义开始之前调用该脚本。因此,虚拟网卡已断开连接,您无法访问网络。

      使用 "postcustomization" 命令行参数添加自定义脚本时,将在客户机自定义完成后调用该脚本。因此,在打开虚拟机电源后,将在初始化过程中调度该脚本,网卡已连接,并且您可以访问网络。运行脚本的时间不包括在默认超时时间段内,您可以避免客户机自定义失败。

      自定义脚本示例
      #!/bin/sh
      if [ x$1 == x"precustomization" ]; then
      echo Do Precustomization tasks
      elif [ x$1 == x"postcustomization" ]; then
      echo Do Postcustomization tasks
      fi 
    5. 网络页面上,选择要应用于客户机操作系统的网络设置类型,并单击下一步
      选项 操作
      使用标准网络设置
      • 选择使用标准网络设置,以便 vCenter Server 使用默认设置在 DHCP 服务器中配置所有网络接口。
      手动选择自定义设置
      • 从列表中选择网络适配器或添加一个新网络适配器。
      • 对于所选网卡,单击编辑

        此时将打开编辑网络对话框。

      • 要将虚拟机配置为使用 IPv4 网络,请单击 IPv4 选项卡。

        如果您选择当使用规范时,提示用户输入 IPv4 地址选项,则在克隆或部署期间选择应用自定义规范时,vCenter Server 会提示输入 IP 地址。此外,在克隆和部署期间还会提示您配置网关。

      • 要将虚拟机配置为使用 IPv6 网络,请单击 IPv6 选项卡。

        如果您选择当使用规范时,提示用户输入地址选项,则在克隆或部署期间选择应用自定义规范时,vCenter Server 会提示输入 IP 地址。此外,在克隆和部署期间还会提示您配置网关。

      • 单击确定
    6. DNS 设置页面上,输入 DNS 服务器和域设置。
      主 DNS辅助 DNS第三 DNS 文本框均接受 IPv4 和 IPv6 地址。
    7. 即将完成页面上,查看详细信息并单击完成以保存所做更改。

结果

所创建的自定义规范会在自定义规范管理器中列出。您可使用该规范自定义虚拟机客户机操作系统。

创建 Windows 的自定义规范

保存自定义规范中特定的 Windows 客户机操作系统设置,该规范可在克隆虚拟机或从模板部署时应用。

注: 自定义之后,不会为 Windows Server 2008 保留默认管理员密码。自定义期间,Windows Sysprep 实用程序将删除并重新创建 Windows Server 2008 上的管理员帐户。您必须在自定义之后虚拟机首次启动时重置管理员密码。

从 vSphere 8.0 Update 2 开始,可以为远程桌面指定组织单位 (OU)。组织单位是对 Active Directory 的细分,包含用户、组、计算机或其他组织单位。

前提条件

确保已满足所有自定义要求。请参见客户机操作系统自定义要求

过程

  1. 选择菜单 > 策略和配置文件,然后在“策略和配置文件”下单击虚拟机自定义规范
  2. 单击创建新规范图标。
    此时将打开 新建虚拟机客户机自定义规范向导。
  3. 名称和目标操作系统页面上,输入自定义规范的名称和描述,然后选择 Windows 作为目标客户机操作系统。
  4. (可选) 选择生成新的安全身份 (SID) 选项,然后单击下一步
    Windows 安全 ID (SID) 在部分 Windows 操作系统中用于唯一标识系统和用户。如果您未选择此选项,则克隆或部署的新虚拟机与源虚拟机或模板具有相同的 SID。

    当电脑是域的一部分,并且只使用域用户帐户时,重复 SID 不会引起问题。但是,如果电脑是工作组的一部分或者使用当地用户帐户,则重复 SID 会影响文件访问控制。有关详细信息,请参见 Microsoft Windows 操作系统的相关文档资料。

  5. 设置注册信息页面上,输入虚拟机所有者的名称和组织,然后单击下一步
  6. 计算机名称页面上,输入客户机操作系统的计算机名称和域名。
    此操作系统将使用此计算机名称在网络上识别自身。此名称在 Linux 系统中称为主机名称。
    选项 操作
    使用虚拟机名称 选择此选项以使用虚拟机名称。vCenter Server创建的计算机名称与客户机操作系统正在运行的虚拟机名称相同。如果名称超过 63 个字符,它将被截断。
    在克隆/部署向导中输入名称 选择此选项后,系统会在克隆或部署期间提示您输入名称。
    输入名称
    1. 输入名称。

      此名称可包含字母数字字符和连字符 (-)。它不能包含句点 (.)、空格或特殊字符,也不能仅包含数字。名称不区分大小写。

    2. (可选) 要确保名称唯一,请选中附加数值复选框。

      该操作会在虚拟机名称后附加连字符后跟数值。与数值结合使用时,如果名称超过 63 个字符,就会被截断。

    使用借助于 vCenter Server配置的自定义应用程序生成名称 输入可以传递到自定义应用程序的参数。
  7. Windows 许可证页面上,提供 Windows 操作系统的许可信息,然后单击下一步
    选项 操作
    对于非服务器操作系统 键入新客户机操作系统的 Windows 产品密钥。
    对于服务器操作系统
    1. 键入新客户机操作系统的 Windows 产品密钥。
    2. 选择包括服务器许可证信息
    3. 选择每个客户每台服务器
    4. 如果选择每台服务器,请输入服务器接受的最大同时连接数。
  8. 设置管理员密码页面上,配置虚拟机的管理员密码,然后单击下一步
    1. 输入管理员帐户的密码,并通过再次键入进行确认。
    2. (可选) 选中以管理员身份自动登录复选框让用户以管理员身份登录到客户机操作系统,并选择自动登录的次数。
  9. 时区页面上,选择虚拟机的时区,然后单击下一步
  10. (可选) 运行一次页面上,指定用户首次登录到客户机操作系统时运行的命令,然后单击下一步
    有关 RunOnce命令的信息,请参见 Microsoft Sysprep 文档。
  11. 在“网络”页面上,选择要应用于客户机操作系统的网络设置类型,并单击下一步
    • 选择使用标准网络设置,以便 vCenter Server 使用默认设置在 DHCP 服务器中配置所有网络接口。
    • 选择手动选择自定义设置,然后自行配置每个网络接口。
      1. 从列表中选择网络适配器或添加一个新网络适配器。
      2. 对于选定的网卡,单击垂直省略号图标,然后选择编辑

        此时将打开编辑网络对话框。

      3. 单击 IPv4 选项卡以将虚拟机配置为使用 IPv4 网络。

        您可以在该阶段配置所有设置,或者您可以选择使用规范时提示用户输入 IPv4 地址选项。在这种情况下,在克隆或部署期间选择要应用的自定义规范时,vCenter Server会提示输入 IP 地址。使用该选项,您可以在克隆或部署期间配置网关。

      4. 单击 IPv6 选项卡以将虚拟机配置为使用 IPv6 网络。

        您可以在该阶段配置所有设置,或者您可以选择使用规范时提示用户输入地址选项。在这种情况下,在克隆或部署期间选择要应用的自定义规范时,vCenter Server会提示输入 IP 地址。使用该选项,您可以在克隆或部署期间配置网关。

      5. 单击 DNS 选项卡,指定 DNS 服务器的详细信息。
      6. 单击 WINS 以指定主 WINS 和辅助 WINS 信息。
      7. 单击确定关闭编辑虚拟机对话框。
  12. 工作组或域页面上,选择虚拟机参与网络的方式,然后单击下一步
    选项 操作
    Workgroup 输入工作组名称。例如,MSHOME
    Windows 服务器域
    1. 输入域名。
    2. 要将计算机添加到指定的域,请输入有权执行此操作的用户帐户的用户名和密码。
    3. (可选) 输入 OU 路径。

      例如,OU=MyOU,DC=MyDom,DC=MyCompany,DC=com

  13. 即将完成页面上,查看详细信息并单击完成以保存所做更改。

结果

所创建的自定义规范会在自定义规范管理器中列出。您可使用该规范自定义虚拟机客户机操作系统。

使用自定义 Sysprep 应答文件为 Windows 创建自定义规范

自定义 Sysprep 应答文件是一个存储各种自定义设置(如计算机名称、许可信息和工作组或域设置)的文件。您可以提供自定义 Sysprep 应答文件,作为在“客户机自定义”向导中指定许多设置的替代方法。

Windows Server 2003 和 Windows XP 使用一个称为 sysprep.inf 的文本文件。Windows Server 2008、Windows Vista 和 Windows 7 使用一个称为 sysprep.xml 的 XML 文件。可以使用文本编辑器创建这些文件,也可以使用 Microsoft Setup Manager 实用程序生成这些文件。有关如何创建自定义 Sysprep 应答文件的详细信息,请参见相关操作系统的文档。

重要说明: 如果您使用自定义 sysprep 答案文件部署具有操作系统 Windows Vista 或更高版本的虚拟机,则必须在 sysprep 文件中指定网络自定义规范。您在 新建虚拟机客户机自定义规范向导中配置的自定义网络设置未应用。有关详细信息,请参阅 Vmware 知识库文章 1029174,网址为 https://kb.vmware.com/s/article/1029174

您可以阻止 Windows 分配与原始虚拟机使用相同安全 ID (SID) 的新虚拟机或模板。当电脑是域的一部分,并且只使用域用户帐户时,重复 SID 不会引起问题。但是,如果电脑是工作组的一部分或者使用当地用户帐户,则重复 SID 会影响文件访问控制。有关详细信息,请参见 Microsoft Windows 操作系统的相关文档资料。

前提条件

确保已满足所有自定义要求。请参见客户机操作系统自定义要求

过程

  1. 选择菜单 > 策略和配置文件,然后在“策略和配置文件”下单击虚拟机自定义规范
  2. 单击创建新规范图标。
    此时将打开 新建虚拟机客户机自定义规范向导。
  3. 在“名称和目标操作系统”页面上,输入自定义规范的名称和描述,然后选择 Windows 作为目标客户机操作系统。
  4. (可选) 选择生成新的安全身份 (SID) 选项。
    Windows 安全 ID (SID) 在部分 Windows 操作系统中用于唯一标识系统和用户。如果您未选择此选项,则克隆或部署的新虚拟机与源虚拟机或模板具有相同的 SID。

    当电脑是域的一部分,并且只使用域用户帐户时,重复 SID 不会引起问题。但是,如果电脑是工作组的一部分或者使用当地用户帐户,则重复 SID 会影响文件访问控制。有关详细信息,请参见 Microsoft Windows 操作系统的相关文档资料。

  5. 选择使用自定义 Sysprep 应答文件,然后单击下一步
  6. 在“自定义 sysprep 文件”上,选择该选项以导入或创建 Sysprep 应答文件,然后单击下一步
    选项 描述
    导入 Sysprep 应答文件 单击浏览并浏览到该文件。
    创建 Sysprep 应答文件 在文本框中键入文件的内容。
  7. 在“网络”页面上,选择要应用于客户机操作系统的网络设置类型,并单击下一步
    • 选择使用标准网络设置,以便 vCenter Server 使用默认设置在 DHCP 服务器中配置所有网络接口。
    • 选择手动选择自定义设置,然后自行配置每个网络接口。
      1. 从列表中选择网络适配器或添加一个新网络适配器。
      2. 对于选定的网卡,单击垂直省略号图标,然后选择编辑

        此时将打开编辑网络对话框。

      3. 单击 IPv4 选项卡以将虚拟机配置为使用 IPv4 网络。

        您可以在该阶段配置所有设置,或者您可以选择使用规范时提示用户输入 IPv4 地址选项。在这种情况下,在克隆或部署期间选择要应用的自定义规范时,vCenter Server会提示输入 IP 地址。使用该选项,您可以在克隆或部署期间配置网关。

      4. 单击 IPv6 选项卡以将虚拟机配置为使用 IPv6 网络。

        您可以在该阶段配置所有设置,或者您可以选择使用规范时提示用户输入地址选项。在这种情况下,在克隆或部署期间选择要应用的自定义规范时,vCenter Server会提示输入 IP 地址。使用该选项,您可以在克隆或部署期间配置网关。

      5. 单击 DNS 选项卡,指定 DNS 服务器的详细信息。
      6. 单击 WINS 以指定主 WINS 和辅助 WINS 信息。
      7. 单击确定关闭编辑虚拟机对话框。
  8. 在“即将完成”页面上,检查详细信息并单击完成以保存所做更改。

结果

所创建的自定义规范会在自定义规范管理器中列出。您可使用该规范自定义虚拟机客户机操作系统。

管理自定义规范

您可以编辑、复制、导出或删除现有规范。

过程

  1. vSphere Client中,选择菜单 > 策略和配置文件,然后单击虚拟机自定义规范
  2. 选择自定义规范和任务。
    选项 描述
    编辑自定义规范 您可以对自定义规范做出更改,例如更改网络配置。单击编辑并做出必要的更改。
    复制自定义规范 如果您需要的自定义规范只是与现有规范稍有不同,则可使用自定义规范管理器创建现有规范的副本并对其进行修改。例如,您可能需要更改 IP 地址或管理员密码。
    导出自定义规范 可以导出自定义规范,并将其另存为 .xml 文件。要将导出的规范应用到虚拟机,请使用导入按钮导入 .xml 文件。
    删除自定义规范 您可以移除自定义规范以释放存储空间。

导入自定义规范

可以导入现有规范,然后使用该规范自定义虚拟机的客户机操作系统。

前提条件

开始之前,必须将至少一个自定义规范另存为可从 vSphere Client 访问的文件系统上的 XML 文件。

过程

  1. vSphere Client中,选择菜单 > 策略和配置文件,然后单击虚拟机自定义规范
  2. 单击导入图标。
  3. 浏览到要导入的 .xml 文件,指定一个名称及可选描述,然后单击确定

结果

即会将导入的规范添加到自定义规范列表。