要添加 OpenStack 映像以与 Horizon Cloud on OpenStack Edge 一起使用,必须先在 Private Cloud Director 中添加映像,或使用 OpenStack 开源解决方案定义映像。Horizon Cloud 映像管理系统 (Image Management System, IMS) 现在可用于 Horizon Cloud on OpenStack Platform9。
注意:Horizon Cloud on OpenStack 当前仅以有限可用性 (LA) 模式提供。
此示例过程假定使用 Platform9 Private Cloud Director (PCD) 主机环境,而不是使用 OpenStack 开源解决方案提供程序。示例屏幕仅用于在执行相关步骤时提供流程指导。
步骤 1 - 上载 Windows 和 VirtIO ISO 文件
-
获取 Windows 桌面 .iso。
-
获取适用于 Windows 的 KVM VirtIO 驱动程序 .iso。有关详细信息,请参阅 Fedora 文档中的使用 virtIO 驱动程序创建 Windows 虚拟机。
-
登录到 Private Cloud Director 控制台,然后单击虚拟机 > 映像 > 添加映像。

-
选择 .iso 文件,为其命名,然后选择 iso 作为磁盘格式。选择添加映像以开始上载过程。

-
对 VirtIO Windows 驱动程序 .iso 文件重复上述步骤。
步骤 2 - 为 Windows 和 VirtIO .iso 文件创建可连接卷
-
在 Private Cloud Director 控制台中,单击存储 > 卷,然后选择创建新卷。

-
选择映像作为源,然后搜索并选择上载的 Windows .iso 文件。

-
为新卷指定一个名称,并确保其大小略大于 .iso。此外,请确保将此卷标记为可引导,以便可用于引导 Windows 安装。

-
对 VirtIO Windows 驱动程序 .iso 重复上述步骤。请注意,您不需要将 VirtIO 卷标记为可引导。
步骤 3 - 通过命令行创建 Windows 虚拟机
-
确保系统上已安装 OpenStack Client CLI 工具。请参阅 OpenStack 产品文档中的安装 OpenStack 命令行客户端。
-
要获取所需的环境变量,请选择 PCD 控制台右上角的齿轮图标,然后选择 API 访问。

-
将环境变量复制到临时文本文件。稍后您需要复制并粘贴这些环境变量。

-
确保您具有到基础架构主机的直接网络连接(VPN 或 LAN)。
在后续步骤中,将在 PCD 中创建虚拟机。您必须使用 CLI 完成以下后续步骤。无法通过 UI 创建具有所需参数的虚拟机。
-
在设备上打开终端以开始创建虚拟机的过程。将您从上一步复制的环境变量粘贴到终端中。请务必使用您的特定值更新环境变量值,例如
OS_USERNAME和OS_PASSWORD。
环境变量命令示例如下所示:
export OS_USERNAME=MyName@companyname.com export OS_PASSWORD=MySecretPassword export OS_AUTH_URL=https://hcs-regionone.app.staging-pcd.platform9.com/keystone/v3 export OS_AUTH_TYPE=password export OS_IDENTITY_API_VERSION=3 export OS_REGION_NAME=RegionOne export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_PROJECT_NAME=service export OS_INTERFACE=public -
按照如下所示为
Virtual Machine Volume Name和Virtual Machine Name添加两个新的环境变量。export VM_VOL_NAME=APM-W11-Vol1 export VM_NAME=APM-W11-MasterImage -
为虚拟机创建新卷(C: 的虚拟硬盘)。下面显示的命令行示例使用您刚创建的 $VM_VOL_NAME 变量。
openstack volume create --size 80 -- bootable $VM_VOL_NAME -
复制新创建卷的 ID,并为卷 ID 创建一个新变量。命令和引用映像示例如下所示。
export VM_VOL_ID=3df9859e-e10f-438b-88b1-8ef109f8a1d6
-
在同一终端窗口中,设置 Windows 卷所需的参数。命令示例如下所示:
openstack volume set \ --image-property hw_boot_menu=true \ --image-property hw_firmware_type=uefi \ --image-property hw_machine_type=q35 \ --image-property hw_tpm_model=tpm-crb \ --image-property hw_tpm_version=2.0 \ --image-property hw_cdrom_bus=sata \ --image-property hw_disk_bus=scsi \ --image-property hw_scsi_model=virtio-scsi \ --image-property os_secure_boot=required \ --image-property os_type=windows \ $VM_VOL_NAME -
找到 Windows .iso 卷的卷 ID。
openstack volume list -
复制 Windows .iso 卷的 ID,并为 Windows .iso 卷创建一个新变量。
export WINISO_VOL_ID=de8c8727-b77d-4335-be7f-7d580046c82f -
复制 VirtIO .iso 卷的 ID,并为 VirtIO .iso 卷创建一个新变量。
export VIRTIO_VOL_ID=d1f6b83a-512a-41b9-a59c-52643adf87e -
确定虚拟机的网络 ID。
openstack network list -
创建虚拟机。请注意,Server 术语在 OpenStack 中指代虚拟机。
**注意:**确保将
$WINISO_VOL_ID设置为boot_index=2,以便在没有操作系统时它会首先引导,而 Windows 卷在安装完成后将优先引导。openstack server create \ --flavor m1.medium \ --network $NETWORK_ID \ --block-device source_type=volume,uuid=$VM_VOL_ID,destination_type=volume,device_type=disk,boot_index=0 \ --block-device source_type=volume,uuid=$WINISO_VOL_ID,destination_type=volume,device_type=cdrom,boot_index=1 \ --block-device source_type=volume,uuid=$VIRTIO_VOL_ID,destination_type=volume,device_type=cdrom,boot_index=2 \ $VM_NAME
步骤 4 - 在虚拟机中安装 Windows
-
在 PCD 控制台中,单击左侧窗格导航中的虚拟机,然后单击虚拟机选项卡以找到并选择您的虚拟机(例如 APM-W11-MasterImage)。
-
单击控制台以查看虚拟机的控制台窗口。
-
继续执行安装过程,直到系统提示您提供安装位置。
-
当系统提示选择安装 Windows 11 的位置时,单击加载驱动程序。
KVM 虚拟机磁盘本身没有可用的驱动程序。必须使用 VirtIO .iso 安装驱动程序才能继续。
-
找到
virtio-win挂载的 .iso,然后选择E:\amd64\w11文件夹。此文件夹包含 VirtIO 磁盘控制器的驱动程序。
-
继续正常安装 Windows。
-
当系统提示这是正确的国家或地区吗? 时,按照提示按 Ctrl+Shift+F3 进入审核模式。
-
Windows 重新引导时,找到 virtio-win 挂载的 .iso 并从磁盘安装 VirtIO-Win-Drivers。

-
安装驱动程序后,重新引导虚拟机以为后续步骤做准备。
步骤 5 - 下载并安装 Horizon Agent
-
登录到 Omnissa Customer Connect 帐户,并在 Horizon Agents Installer 64 位中下载最新的 Horizon Agents Installer (HAI)。
-
接受默认安装参数(可以选择启用其他复选框),选中成功完成时自动重新启动系统复选框,然后单击继续安装。
步骤 6 - 安装和配置 Cloudbase-Init
-
下载 Cloudbase-init。请参阅 Cloudbase-init。
无需指定任何详细信息即可下载安装程序。向下滚动页面,直到看到显示否,只是显示下载链接,然后单击该链接。
-
选择以 LocalSystem 身份运行 Cloudbase-Init 服务。
-
安装 Cloudbase-Init 后,转到
C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf并打开cloudbase-init.conf。 -
将
cloudbase-init.conf的全部内容替换为以下条目,然后保存文件。[DEFAULT] verbose=true debug=true log_dir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\ log_file=cloudbase-init.log default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN mtu_use_dhcp_config=true ntp_use_dhcp_config=true local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ check_latest_version=false metadata_services=cloudbaseinit.metadata.services.httpservice.HttpService plugins=cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin allow_reboot=false -
按照 Horizon 产品文档中的为远程桌面部署准备客户机 Windows 操作系统所述准备客户机操作系统,但以下情况除外:
- 忽略引导您安装 Omnissa Tools 的步骤。
- 不要将虚拟机添加到域。
- 在此阶段,不要使用 Sysprep 进行通用化。
- 忽略引导您安装 Omnissa Tools 的步骤。
步骤 7 - 下载并运行 Windows OS Optimization Tool for Horizon
-
从 Omnissa Customer Connect 的下载 OS Optimization Tool 中下载最新的 OS Optimization Tool。
-
从 OS Optimization Tool (OSOT) 顶栏菜单中,选择优化以运行 Windows OS Optimization Tool 的优化阶段。

-
单击分析按钮,然后单击优化按钮以为虚拟机指定选定的优化。


-
从之前选择“优化”的同一 OSOT 顶栏菜单中,选择通用化以运行 Windows OS Optimization Tool 的通用化阶段。
-
在生成的“说明”页面上,将管理员密码字段留空,确保自动重新启动复选框处于启用状态,然后单击通用化。
虚拟机重新引导后,将不再处于审核模式,并将自动以管理员帐户登录。
潜在问题和解决办法: 如果通用化失败且虚拟机未自动重新引导,请查看位于
C:\Windows\System32\Sysprep\Panther的日志文件。如果看到类似于以下内容的日志条目内容:BiUpdateEfiEntry failed c000000d BiExportBcdObjects failed c000000d BiExportStoreAlterationsToEfi failed c000000d Failed to export alterations to firmware. Status: c000000d之后,请在虚拟机上尝试以下解决办法:
- 转到开始 > 运行 >
tpm.msc。 - 在右侧面板中选择清除 TPM。
- 当系统提示重新引导时,选择确定,然后计算机应会按预期继续。
- 转到开始 > 运行 >
-
在虚拟机上创建一个备份本地管理员帐户,以便在禁用内置管理员账户时提供一种登录该计算机的方式。

-
出于安全目的,请为管理员帐户设置密码。
-
从之前选择“通用化”的同一 OSOT 顶栏菜单中,选择“完成”以运行 Windows OS Optimization Tool 的完成阶段。
-
从打开的页面中,接受默认的复选框选中状态,然后单击完成。
此操作需要几分钟时间才能完成。请先让优化工具完成这一阶段,然后再继续。
步骤 8 - 完成部署的快照虚拟机配置
-
在 Private Cloud Director 控制台中,通过选择虚拟机(例如 APM-GoldenImage-v1)并单击电源操作 > 停止,关闭虚拟机电源。电源操作菜单可通过单击 UI 最右侧的 3 个垂直点打开。
-
同样通过上述 UI 最右侧的 3 个竖点中,单击其他操作 > 管理卷。
-
仅分离 VirtIO 和 Windows 安装程序卷。示例屏幕如下所示。

-
编辑快照虚拟机,并设置
block_device_mapping属性以设置"delete_on_termination": true。 -
在左侧窗格导航中,单击虚拟机 > 映像。选择虚拟机快照选项卡,然后选择您的快照。
-
选择编辑属性,然后找到
block_device_mapping属性。在其值字段中,找到名为delete_on_termination的键,将其值从false更改为true,然后单击更新属性。
添加 OpenStack Platform9 的映像
在 OpenStack Platform 9 环境中准备好父项虚拟机并生成快照后,请在 Horizon Universal Console 中将该快照注册为映像。
-
登录到 Horizon Cloud。
-
在 Horizon Universal Console 中,单击资源 > 映像。
-
单击添加,然后从下拉菜单中选择 Horizon Cloud > OpenStack > Platform9。
-
填写常规信息页面,然后单击下一步。
- 映像名称 - 输入映像的名称。
- 描述 - 输入可选的描述。
- 标记 - 选择要应用于映像的标记。默认情况下,将选择默认标记。您可在此处创建新标记。
-
在映像源页面上,选择预构建的 Platform9 快照,然后单击下一步。
- 此选项会注册通用化快照,该快照已预先构建并安装了 Horizon Agent 和所需的应用程序。
- 目前,Platform 9 是唯一可用的映像源。未来可能会添加更多源。
-
在映像详细信息页面上,填写以下字段,然后单击添加。
- Horizon Edge - 从下拉列表中,选择您在之前的 Edge 部署步骤中创建并连接的 OpenStack Platform9 Horizon Edge。
- 提供程序 - 从下拉列表中,选择为目标 Platform9 环境配置的 OpenStack Platform9 提供程序。
- 虚拟机快照 - 从下拉列表中,选择一个 OpenStack 虚拟机快照。这些快照是由您在 OpenStack 库中创建并自定义的,而不是由 Omnissa 创建的。选择后,快照名称和数据存储会自动填充。
- 操作系统 - 选择该映像的操作系统。
- GPU 类型 - 从下拉列表中选择 GPU 类型。
- 用户名 - 输入虚拟机的管理员用户名。
- 密码 - 输入虚拟机的管理员密码。
- 确认密码 - 重新输入管理员密码。
注意:
- 这是一个仅导入流程。没有发布页面。导入过程会直接生成一个可用的映像。
- 虚拟机快照来自您的 OpenStack 库。在注册快照之前,您负责完成所有自定义和通用化处理。
- 每个映像只能使用一个快照。如果某个快照已与其他映像关联,则无法重用该快照。系统会返回错误,您必须选择其他快照。
- 管理员凭据没有任何限制。与 Azure 不同,您可以使用自己的用户名和密码。
- OpenStack Platform9 映像使用相同的 API。API 没有任何变化。
此页面对您有帮助吗?