为 Azure 本地虚拟机准备 CentOS Linux 映像(预览版)

注意

本文引用了 CentOS,这是一种已到达生命周期结束(EOL)的 Linux 分发版。 考虑使用 CentOS 并相应地进行计划。 有关详细信息,请参阅 CentOS 生命周期结束指南

适用于:Azure 本地版本 23H2

本文介绍如何准备 CentOS Linux 映像,以便在本地 Azure 上创建虚拟机(VM)。 使用 Azure CLI 创建 VM 映像。

先决条件

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

  • 有权访问已部署、注册并连接到 Azure Arc 的 Azure 本地实例。转到 Azure 本地资源中的“概述 ”页。 在右侧窗格的“服务器”选项卡上,Azure Arc 应显示为“已连接”。
  • 在 Azure 本地实例上下载最新支持的 ISO 映像 。 在这里,我们下载了 CentOS-7-x86_64-Everything-2207-02.iso 文件。 使用此映像创建 VM 映像。

Workflow

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

  1. 创建 CentOS VM
  2. 连接到 VM 并安装 CentOS
  3. 配置 VM
  4. 清理剩余配置
  5. 创建 CentOS VM 映像

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

从 CentOS 映像创建 VM 映像

重要

  • 不要使用 Azure 虚拟机 VHD 磁盘为 Azure 本地准备 VM 映像。
  • 如果要在 VM 上启用来宾管理,建议准备 CentOS 映像。

按照 Azure 本地部署中的这些步骤,使用 Azure CLI 创建 VM 映像。

步骤 1:创建 CentOS VM

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

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

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

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

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

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

    3. 启动内存分配 4096

      显示“分配内存”页的屏幕截图。

    4. 选择 VM 用于连接的虚拟网络交换机。

      显示“配置网络”页的屏幕截图。

    5. 接受“连接虚拟硬盘”页上的默认值。

      显示“连接虚拟硬盘”页上的“新建虚拟机向导”的屏幕截图。

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

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

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

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

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

    显示“设置”页上 VM 已禁用安全启动的屏幕截图。

  3. 从 Hyper-V 管理器中选择 VM,然后启动 VM。 VM 从提供的 ISO 映像启动。

步骤 2:连接到 VM 并安装 CentOS

运行 VM 后,请执行以下步骤:

  1. 从 Hyper-V 管理器中选择 VM。 右键单击它,然后在打开的菜单上,选择“ 连接”。

  2. 从启动菜单中选择“安装 CentOS 7”选项。

  3. 选择语言,然后选择“ 继续”。

    显示在 CentOS 安装过程中选择语言的屏幕截图。

  4. 选择安装目标,然后选择“ 完成”。

    显示 CentOS 安装期间安装目标的屏幕截图。

  5. 选择 “网络和主机名”。

    显示在 CentOS 安装过程中选择网络和主机名的屏幕截图。

  6. 为网络接口启用 ON 开关,然后选择“完成”。

    显示在 CentOS 安装过程中启用网络接口的屏幕截图。

  7. 选择 “用户”设置 并设置根密码。 输入密码,确认密码,然后选择“ 完成”。

    显示在 CentOS 安装过程中设置根密码的屏幕截图。

  8. 选择“ 完成配置”。

    显示在 CentOS 安装过程中选择“完成”配置的屏幕截图。

  9. 选择“ 开始安装”。 安装完成后,选择“重新启动以重新启动 VM。

    显示在 CentOS 安装过程中选择“重新启动”的屏幕截图。

步骤 3:配置 VM

配置 VM:

  1. 使用在 CentOS 安装过程中创建的根密码连接并登录到 VM。

  2. 请确保 cloud-init 未安装。

    sudo yum list installed | grep cloud-init
    
  3. 安装和 cloud-init 验证已安装的版本 cloud-init

    sudo yum install cloud-init
    cloud-init --version
    

步骤 4:清理剩余配置

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

  1. 清理 cloud-init 默认配置。

    sudo yum clean all
    sudo cloud-init clean
    
  2. 清理日志和缓存。

    sudo rm -rf /var/lib/cloud/ /var/log/* /tmp/*
    
  3. 删除 bash 历史记录。

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

  5. 导出 VHDX 或从 VM 复制 VHDX。 可以使用以下方法:

    • 将 VHDX 复制到 Azure 本地群集共享卷上的用户存储。
    • 或者,将 VHDX 作为页 blob 复制到Azure 存储帐户中的容器。

步骤 5:创建 VM 映像

按照 Azure 本地版中的这些步骤从之前创建的 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 Local>"
    $OsType = "<OS of source image>"
    

    下表介绍了参数。

    参数 说明
    Subscription 与 Azure 本地实例关联的订阅。
    Resource_Group 与此映像关联的 Azure 本地实例的资源组。
    Location Azure 本地实例的位置。 例如,位置可以是 eastuswestreurope
    OsType 与源映像关联的操作系统。 此系统可以是 Windows 或 Linux。
  5. 使用 VM 的 VHDX 创建库映像。 使用此 VM 映像在 Azure 本地创建 Azure Arc 虚拟机。

    请确保在 Azure 本地群集共享卷中的用户存储中复制 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. 验证映像是否已创建。