要添加 OpenStack 映像以与 Horizon Cloud on OpenStack Edge 一起使用,必须先在 Private Cloud Director 中添加映像,或使用 OpenStack 开源解决方案定义映像。Horizon Cloud 映像管理系统 (Image Management System, IMS) 当前不适用于 Horizon Cloud on OpenStack。
注意: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,然后单击更新属性。
此页面对您有帮助吗?