要使 Cloud Assembly 初始化部署到 vSphere 的 Windows 计算机,映像需要基于安装并配置了 Cloudbase-Init 的 vSphere 模板。
创建映像
- 使用 vSphere 创建 Windows 虚拟机并打开其电源。
- 在虚拟机上,登录到 Windows。
- 下载 Cloudbase-Init。
- 启动 Cloudbase-Init 设置 .msi 文件。
在安装过程中,输入 Administrator 作为用户名,然后选择以 LocalSystem 身份运行的选项。
其他设置选项可以保留为默认值。
- 允许安装运行,但不关闭设置向导的最终“已完成”页面。
重要说明: 请勿关闭设置向导的最后一个页面。
- 在安装向导的“已完成”页面仍处于打开状态的情况下,使用 Windows 导航到 Cloudbase-Init 安装路径,并在文本编辑器中打开以下文件。
conf\cloudbase-init-unattend.conf
- 将
metadata_services
设置为OvfService
,如下所示。 如果该设置不存在,请添加该设置。metadata_services=cloudbaseinit.metadata.services.ovfservice.OvfService
- 保存并关闭
cloudbase-init-unattend.conf
。 - 从同一文件夹中,使用文本编辑器打开以下文件。
conf\cloudbase-init.conf
- 设置
first_logon_behaviour
、metadata_services
和plugins
,如下所示。 如果这些设置不存在,请添加这些设置。first_logon_behaviour=always . . . metadata_services=cloudbaseinit.metadata.services.ovfservice.OvfService . . . plugins=cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,cloudbaseinit.plugins.windows.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin . . .
- 保存并关闭
cloudbase-init.conf
。 - 在设置向导的“已完成”页面上,选择运行 Sysprep 的选项和运行 Sysprep 之后关闭的选项,然后单击完成。
注: VMware 曾经遇到过运行 Sysprep 会阻止映像部署正常运行的情况。
部署时,Cloud Assembly 会应用动态生成的自定义规范,这会断开网络接口的连接。映像中的挂起 Sysprep 状态可能会导致自定义规范失败并使部署处于已断开连接状态。
如果您怀疑环境中发生这种情况,请尝试在创建映像时使 Sysprep 选项处于已停用状态。 - 虚拟机关闭后,使用 vSphere 将其转换为模板。
其他详细信息
下表详述了在设置期间配置的条目。
配置设置 | 用途 |
---|---|
用户名、CreateUserPlugin 和 SetUserPasswordPlugin | 运行 Sysprep 后,首次引导使用 CreateUserPlugin 创建用户名 Administrator 帐户,但密码为空。SetUserPasswordPlugin 允许 Cloudbase-Init 将空密码更改为将包含在云模板中的远程访问密码。 |
首次登录行为 | 此设置会在首次登录时提示用户更改密码。 |
元数据服务 | 通过仅列出 OvfService,Cloudbase-Init 不会尝试查找 vCenter 中不支持的其他元数据服务。这会使日志文件更干净,否则日志中将充满有关找不到那些其他服务的条目。 |
插件 | 通过仅列出具有 OvfService 所支持功能的插件,日志将再次变得更加干净。Cloudbase-Init 按指定的顺序运行插件。 |
以 LocalSystem 身份运行 | 此设置支持任何高级初始化命令,这些命令可能需要 Cloudbase-Init 才能在专用管理员帐户下运行。 |