为 Azure Stack HCI 虚拟机准备 Red Hat Enterprise 映像(预览版)
适用于:Azure Stack HCI 版本 23H2
本文介绍如何准备 Red Hat Enterprise Linux 映像,以在 Azure Stack HCI 群集上创建虚拟机(VM)。 使用 Azure CLI 创建 VM 映像。
先决条件
在开始之前,请满足以下先决条件:
- 有权访问 Azure Stack HCI 群集。 此群集已部署、注册并连接到 Azure Arc。转到 Azure Stack HCI 群集资源中的“概述”页。 在右侧窗格的“服务器”选项卡上,Azure Arc 应显示为“已连接”。
- 在 Azure Stack HCI 群集上下载最新支持的 Red Hat Enterprise 服务器映像 。 我们支持所有 Red Hat Enterprise Linux 7.x、8.x 和 9.x 版本。 在这里,我们下载了 rhel-9.4-x86_64-boot.iso 文件。 使用此映像创建 VM 映像。
Workflow
准备 Red Hat Enterprise 映像并创建 VM 映像:
以下部分提供了工作流中每个步骤的详细说明。
从 Red Hat Enterprise 映像创建 VM 映像
重要
- 请勿使用 Azure 虚拟机 VHD 磁盘为 Azure Stack HCI 准备 VM 映像。
- 如果要在 VM 上启用来宾管理,建议准备 Red Hat Enterprise 映像。
按照 Azure Stack HCI 群集上的这些步骤,使用 Azure CLI 创建 VM 映像。
步骤 1:创建 Red Hat Enterprise VM
若要使用下载的 Red Hat Enterprise 映像预配 VM,请执行以下操作:
使用下载的映像创建具有以下规范的 VM:
为 VM 提供一个易记名称。
在此处使用 VHDX 映像时,请为 VM 指定第 2 代。
选择“分配内存”,然后输入 4096 用于启动内存。
选择“ 配置网络”。 从下拉列表中选择 VM 用于连接的虚拟交换机。
接受“连接虚拟硬盘”页上的默认值。
选择“ 安装选项” ,然后选择“ 从可启动映像文件安装操作系统”。 指向之前下载的 ISO。
有关分步说明,请参阅 使用 Hyper-V 管理器预配 VM。
使用 UEFI 证书保护启动 VM。
创建 VM 后,它将显示在 Hyper-V 管理器中。 选择 VM,右键单击它,然后选择“ 设置”。
在左窗格中,选择“安全”选项卡。然后在“安全启动”下,从模板下拉列表中选择Microsoft UEFI 证书颁发机构。
选择“确定”以保存更改。
从 Hyper-V 管理器中选择 VM,然后启动 VM。 VM 从提供的 ISO 映像启动。
步骤 2:连接到 VM 并安装 Red Hat OS
运行 VM 后,请执行以下步骤:
从 Hyper-V 管理器中选择 VM,右键单击它以打开菜单,然后选择“ 连接”。
从启动菜单中选择“ 安装 Red Hat Enterprise Linux 9.4 ”。
选择语言,然后选择“ 继续”。
在 “安装摘要 ”页上,你可能会看到其他可操作的项目。
选择“ 连接到 Red Hat ”并创建凭据。 选择“注册”,然后选择“完成”。
选择“软件选择”,保留默认值,然后选择“完成”。
选择 “安装目标 ”,然后选择“ 完成”。
选择 “网络和主机名”。
为网络接口启用 ON 开关,然后选择“完成”。
选择 “用户”设置 并设置根密码。 输入密码,确认密码,然后选择“ 完成”。
选择“ 开始安装”。
安装完成后,选择“ 重新启动系统 ”重新启动 VM。
有关分步说明,请参阅 使用 Hyper-V 管理器预配 VM。
步骤 3:配置 VM
配置 VM:
使用在 Red Hat Enterprise 安装过程中创建的根密码连接到 VM,然后登录到 VM。
请确保
cloud-init
未安装。Sudo yum list installed | grep cloud-init
cloud-init
安装该工具并验证已安装的版本cloud-init
。Sudo yum install -y cloud-init cloud-init --version
下面是示例输出:
[hcitest@localhost ~]$ sudo yum install -y cloud-init Installed: cloud-init-23.4-7.el9_4.noarch dhcp-client-12:4.4.2-19.bl.el9.x86_64 dhcp-common-12:4.4.2-19.bl.el9.noarch geolite2-city-20191217-6.el9.noarch geolite2-country-20191217-6.el9.noarch ipcalc-l.0.0-5.el9.x86_64 python3-attrs-20.3.0-7.el9.noarch python3-babel-2.9.1-2.el9.noarch python3-configob j-5.0.6-25.el9.noarch python3-jinja2-2.11.3-5.el9.noarch python3-j sonpatch-1.21-16.el9.noarch python3-j sonpointer-2.0-4.el9.noarch python3-j sonschema-3.2.0-13.el9.noarch python3-markupsafe-l.1.1-12.el9.x86_64 python3-netifaces-0.10.6-15.el9.x86_64 python3-oauthlib-3.1.1-5.el9.noarch python3-prettytable-0.7.2-27.el9.noarch python3-pyrsistent-0.17.3-8.el9.x86_64 python3-pyserial-3.4-12.el9.noarch python3-pytz-2021.1-5.el9.noarch Complete! [hcitest@localhost ~]$ cloud-init —version /usr/bin/cloud-init 23.4-7.el9_4
步骤 4:清理剩余配置
从 VM 中删除特定于计算机的文件和数据,以便创建干净的 VM 映像,而无需任何历史记录或默认配置。 按照 Azure Stack HCI 群集上的这些步骤清理剩余配置。
清理
cloud-init
默认配置。sudo yum clean all sudo cloud-init clean
下面是示例输出:
[hcitest@localhost ~]$ sudo yum clean all Updating Subscription Management repositories. 17 files removed [hcitest@localhost ~]$ sudo cloud-init clean
清理日志和缓存。
sudo rm -rf /var/lib/cloud/ /var/log/* /tmp/*
取消注册 VM。
sudo subscription-manager unregister sudo Subscription-manager clean
下面是示例输出:
[hcitest@localhost ~]$ sudo subscription-manager unregister Unregistering from: subscription.rhsm.redhat.com:443/subscription System has been unregistered. [hcitest@localhost ~]$ sudo subscription-manager clean All local data removed
清除任何特定于主机的详细信息。
sudo rm -f /etc/sysconfig/network-scripts/* sudo rm -f /etc/ssh/ssh_host* sudo rm /etc/lvm/devices/system.devices
删除 bash 历史记录。
sudo rm -f ~/.bash_history export HISTSIZE=0 exit
关闭 VM。 在 Hyper-V 管理器中,转到“关闭操作>”。
导出 VHDX 或从 VM 复制 VHDX。 可以使用以下方法:
- 将 VHDX 复制到 Azure Stack HCI 上的群集共享卷上的用户存储。
- 或者,将 VHDX 作为页 blob 复制到Azure 存储帐户中的容器。
步骤 5:创建 VM 映像
按照 Azure Stack HCI 群集上的这些步骤,从之前创建的 VHDX 创建 VM 映像。
使用 Azure CLI 创建 VM 映像:
以管理员身份运行 PowerShell。
登录。 运行以下 cmdlet:
az login
设置订阅。 运行以下 cmdlet:
az account set --subscription <Subscription ID>
为订阅、资源组、自定义位置、位置、映像的 OS 类型、映像的名称以及映像所在的路径设置参数。 请将
< >
中的参数替换为适当的值。$Subscription = "<Subscription ID>" $Resource_Group = "<Resource group>" $CustomLocation = "<Custom location>" $Location = "<Location for your Azure Stack HCI cluster>" $OsType = "<OS of source image>"
下表介绍了参数。
参数 说明 Subscription
与你的 Azure Stack HCI 群集关联的订阅。 Resource_Group
与此映像关联的 Azure Stack HCI 群集的资源组。 Location
Azure Stack HCI 群集的位置。 例如,位置可以是 eastus
或westreurope
。OsType
与源映像关联的操作系统。 此系统可以是 Windows 或 Linux。 使用 VM 的 VHDX 创建库映像。 使用此 VM 映像在 Azure Stack HCI 上创建 Azure Arc 虚拟机。
请确保在 Azure Stack HCI 的群集共享卷中的用户存储中复制 VHDX。 例如,路径可能如下所示
C:\ClusterStorage\UserStorage_1\linuxvhdx
。$ImagePath = "Path to user storage in CSV" $ImageName = "mylinuxvmimg" az stack-hci-vm image create --subscription $subscription -g $resource_group --custom-location $CustomLocation --location $location --image-path $ImagePath --name $ImageName --debug --os-type 'Linux'
验证映像是否已创建。