为 Azure Stack HCI 虚拟机准备 Ubuntu 映像

适用于:Azure Stack HCI 版本 23H2

本文介绍如何准备 Ubuntu 映像,以在 Azure Stack HCI 群集上创建虚拟机(VM)。 使用 Azure CLI 创建 VM 映像。

先决条件

在开始之前,请满足以下先决条件:

  • 有权访问 Azure Stack HCI 群集。 此群集已部署、注册并连接到 Azure Arc。转到 Azure Stack HCI 群集资源中的“概述”页。 在右侧窗格的“服务器”选项卡上,Azure Arc 应显示为“已连接”。
  • 在 Azure Stack HCI 群集上下载最新支持的 Ubuntu 服务器映像 。 支持的 OS 版本为 Ubuntu 18.0420.0422.04 LTS。 准备此映像以创建 VM 映像。

Workflow

准备 Ubuntu 映像并从该映像创建 VM 映像:

  1. 创建 Ubuntu VM
  2. 配置 VM
  3. 清理剩余配置
  4. 创建 Ubuntu VM 映像

以下部分提供了工作流中每个步骤的详细说明。

从 Ubuntu 映像创建 VM 映像

重要

  • 请勿使用 Azure 虚拟机 VHD 磁盘为 Azure Stack HCI 准备 VM 映像。
  • 如果要在 VM 上启用来宾管理,建议准备 Ubuntu 映像。

按照 Azure Stack HCI 群集上的这些步骤,使用 Azure CLI 创建 VM 映像。

步骤1 :创建 Ubuntu VM

若要使用下载的 Ubuntu 映像预配 VM,请执行以下操作:

  1. 使用下载的映像创建具有以下规范的 VM:

    1. 为 VM 提供一个易记名称。

      显示“指定名称和位置”页上的“新建虚拟机向导”的屏幕截图。

    2. 在此处使用 VHDX 映像时,请为 VM 指定第 2 代

      显示“指定生成”页上的“新建虚拟机向导”的屏幕截图。

    3. 从可启动映像中选择“安装操作系统”。 指向之前下载的 ISO。

      显示“安装选项”页上的“新建虚拟机向导”的屏幕截图。

    有关分步说明,请参阅 使用 Hyper-V 管理器预配 VM。

  2. 使用 UEFI 证书保护启动 VM。

    1. 创建 VM 后,它将显示在 Hyper-V 管理器中。 选择 VM,右键单击它,然后选择“ 设置”。
    2. 在左窗格中,选择“ 安全 ”选项卡。 然后在“安全启动下,从“模板 ”下拉列表中选择 Microsoft UEFI 证书颁发机构
    3. 选择“确定”以保存更改。

    显示“设置”页上 VM 的安全启动选项的屏幕截图。

步骤 2:配置 VM

按照 Azure Stack HCI 群集上的以下步骤配置之前预配的 VM:

  1. 登录 VM。 请参阅连接到 Linux VM 中的步骤。

  2. 若要从存储库下载所有最新的包列表,请运行以下命令:

    sudo apt update
    
  3. 安装 Azure 定制内核。 VM 需要此步骤才能获取网络接口的 IP。

    sudo apt install linux-azure -y
    
  4. 安装 SSH 服务器。 运行以下命令:

    sudo apt install openssh-server openssh-client -y
    
  5. 配置无密码 sudo。 使用visudo以下命令在文件末尾/etc/sudoers添加以下命令:

    ALL ALL=(ALL) NOPASSWD:ALL
    

步骤 3:清理剩余配置

从 VM 中删除特定于计算机的文件和数据,以便创建干净的 VM 映像,而无需任何历史记录或默认配置。 按照 Azure Stack HCI 群集上的这些步骤清理剩余配置。

注意

根据所使用的 Ubuntu 版本,其中一些文件可能不存在。

  1. 清理 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
    
  2. 清理日志和缓存。

    sudo cloud-init clean --logs --seed
    sudo rm -rf /var/lib/cloud/ /var/log/* /tmp/*
    sudo apt-get clean
    
  3. 删除 bash 历史记录。

    rm -f ~/.bash_history 
    export HISTSIZE=0 
    logout
    
  4. 关闭 VM。 在 Hyper-V 管理器中,转到“关闭操作>”。

步骤 4:创建 VM 映像

按照 Azure Stack HCI 群集上的这些步骤,从之前创建的 VHDX 创建 VM 映像。

使用 Azure CLI 创建 VM 映像:

  1. 以管理员身份运行 PowerShell。

  2. 登录。 运行以下 cmdlet:

    az login
    
  3. 设置订阅。 运行以下 cmdlet:

    az account set --subscription <Subscription ID>
    
  4. 为订阅、资源组、自定义位置、位置、映像的 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 群集的位置。 例如,位置可以是 eastuswestreurope
    OsType 与源映像关联的操作系统。 此系统可以是 Windows 或 Linux。
  5. 使用 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' 
    
  6. 验证映像是否已创建。