为 Azure 本地虚拟机准备 Ubuntu 映像
适用于:Azure Local 2311.2 及更高版本
本文介绍如何准备 Ubuntu 映像,以便在本地 Azure 上创建虚拟机(VM)。 使用 Azure CLI 创建 VM 映像。
先决条件
在开始之前,请满足以下先决条件:
- 有权访问 Azure 本地实例。 此系统已部署、注册并连接到 Azure Arc。转到 Azure 本地资源中的“概述 ”页。 在右侧窗格的“服务器”选项卡上,Azure Arc 应显示为“已连接”。
- 在 Azure 本地系统上下载最新支持的 Ubuntu 服务器映像 。 支持的 OS 版本为 Ubuntu 18.04、 20.04 和 22.04 LTS。 准备此映像以创建 VM 映像。
Workflow
准备 Ubuntu 映像并从该映像创建 VM 映像:
以下部分提供了工作流中每个步骤的详细说明。
从 Ubuntu 映像创建 VM 映像
重要
- 不要使用 Azure 虚拟机 VHD 磁盘为 Azure 本地准备 VM 映像。
- 如果要在 VM 上启用来宾管理,建议准备 Ubuntu 映像。
按照 Azure 本地部署中的这些步骤,使用 Azure CLI 创建 VM 映像。
步骤1 :创建 Ubuntu VM
若要使用下载的 Ubuntu 映像预配 VM,请执行以下操作:
使用下载的映像创建具有以下规范的 VM:
有关分步说明,请参阅 使用 Hyper-V 管理器预配 VM。
使用 UEFI 证书保护启动 VM。
- 创建 VM 后,它将显示在 Hyper-V 管理器中。 选择 VM,右键单击它,然后选择“ 设置”。
- 在左窗格中,选择“ 安全 ”选项卡。 然后在“安全启动” 下,从“模板 ”下拉列表中选择 Microsoft UEFI 证书颁发机构。
- 选择“确定”以保存更改。
步骤 2:配置 VM
按照 Azure 本地版中的以下步骤配置之前预配的 VM:
登录 VM。 请参阅连接到 Linux VM 中的步骤。
若要从存储库下载所有最新的包列表,请运行以下命令:
sudo apt update
安装 Azure 定制内核。 VM 需要此步骤才能获取网络接口的 IP。
sudo apt install linux-azure -y
安装 SSH 服务器。 运行下面的命令:
sudo apt install openssh-server openssh-client -y
配置无密码 sudo。 使用
/etc/sudoers
以下命令在文件末尾visudo
添加以下命令:ALL ALL=(ALL) NOPASSWD:ALL
步骤 3:清理剩余配置
从 VM 中删除特定于计算机的文件和数据,以便创建干净的 VM 映像,而无需任何历史记录或默认配置。 按照 Azure 本地版中的这些步骤清理剩余配置。
注意
根据所使用的 Ubuntu 版本,其中一些文件可能不存在。
清理
cloud-init
默认配置。sudo rm -f /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg /etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg /etc/cloud/cloud.cfg.d/99-installer.cfg /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg sudo rm -f /etc/cloud/ds-identify.cfg sudo rm -f /etc/netplan/*.yaml
清理日志和缓存。
sudo cloud-init clean --logs --seed sudo rm -rf /var/lib/cloud/ /var/log/* /tmp/* sudo apt-get clean
删除 bash 历史记录。
rm -f ~/.bash_history export HISTSIZE=0 logout
关闭 VM。 在 Hyper-V 管理器中,转到“关闭操作>”。
步骤 4:创建 VM 映像
按照 Azure 本地版中的这些步骤从之前创建的 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 Local>" $osType = "<OS of source image>"
下表介绍了参数。
参数 说明 subscription
与 Azure 本地实例关联的订阅。 resource_group
与此映像关联的 Azure 本地实例的资源组。 location
Azure 本地实例的位置。 例如,位置可以是 eastus
或westreurope
。os-type
与源映像关联的操作系统。 此系统可以是 Windows 或 Linux。 使用 VM 的 VHDX 创建库映像。 使用此 VM 映像在 Azure 本地创建 Azure Arc 虚拟机。
请确保在 Azure 本地群集共享卷中的用户存储中复制 VHDX。 例如,路径可能如下所示
C:\ClusterStorage\UserStorage_1\linuxvhdx
。$imagePath = "Path to user storage in CSV" $imageName = "mylinuxvmimg" $osType = "Linux" az stack-hci-vm image create --subscription $subscription -g $resource_group --custom-location $customLocation --location $location --image-path $imagePath --name $imageName --debug --os-type $osType
验证映像是否已创建。