How to capture a classic Linux virtual machine as an image(如何捕获用作映像的经典 Linux 虚拟机)

重要

经典 VM 将于 2023 年 3 月 1 日停用。

如果从 ASM 使用 IaaS 资源,请在 2023 年 3 月 1 日之前完成迁移。 我们建议你尽快进行切换,以利用 Azure 资源管理器中的许多增强功能。

有关详细信息,请参阅在 2023 年 3 月 1 日之前将 IaaS 资源迁移到 Azure 资源管理器

注意

Azure 具有用于创建和处理资源的两个不同的部署模型:资源管理器部署模型和经典部署模型。 本文介绍如何使用经典部署模型。 Microsoft 建议大多数新部署使用 Resource Manager 模型。 了解如何使用 Resource Manager 模型执行这些步骤

自 2017 年 11 月 15 日起,仅在 Azure 门户中提供虚拟机。

本文将演示如何捕获运行 Linux 的经典 Azure 虚拟机 (VM) 作为创建其他虚拟机的映像。 此映像包括操作系统磁盘和附加到 VM 的数据磁盘。 它不包括网络配置,因此在使用此映像创建其他 VM 时需要进行网络配置。

Azure 在“映像”下存储映像,以及任何已上载的映像。 有关映像的详细信息,请参阅关于 Azure 中的虚拟机映像

准备阶段

这些步骤假定已使用经典部署模型创建了 Azure VM 并配置了操作系统,包括附加任何数据磁盘。 如果需要创建 VM,请阅读如何创建 Linux 虚拟机

捕获虚拟机

  1. 使用所选 SSH 客户端连接到 VM

  2. 在 SSH 窗口中,键入以下命令。 waagent 的输出结果可能会因此实用程序的版本而略有差异:

    sudo waagent -deprovision+user
    

    上述命令将尝试清除系统并使其适合重新预配。 此操作执行以下任务:

    • 删除 SSH 主机密钥(如果在配置文件中 Provisioning.RegenerateSshHostKeyPair 为“y”)

    • 清除 /etc/resolv.conf 中的 nameserver 配置

    • 从 /etc/shadow 中删除 root 用户的密码(如果在配置文件中 Provisioning.DeleteRootPassword 为“y”)

    • 删除缓存的 DHCP 客户端租赁

    • 将主机名重置为 localhost.localdomain

    • 删除上次预配的用户帐户(从 /var/lib/waagent 获得)和关联的数据

      注意

      取消预配会删除文件和数据,目的是使映像“通用化”。 仅在想要捕获为新映像模板的 VM 上运行此命令。 无法确保映像中的所有敏感信息均已清除,或者说无法确保该映像适合再分发给第三方。

  3. 键入 y 继续。 添加 -force 参数即可免除此确认步骤。

  4. 键入 Exit 关闭 SSH 客户端。

    注意

    剩余步骤假定已在客户端计算机上安装 Azure CLI。 以下所有步骤也可在 Azure 门户中执行。

  5. 从客户端计算机中打开 Azure CLI 并登录到你的 Azure 订阅。 有关详细信息,请阅读从 Azure CLI 连接到 Azure 订阅

    注意

    登录到 Azure 门户。

  6. 请确保你是在服务管理模式下:

    azure config mode asm
    
  7. 关闭已取消预配的 VM。 以下示例关闭名为 myVM 的 VM:

    azure vm shutdown myVM
    

    如果需要,可使用 azure vm list 查看在订阅中创建的所有 VM 列表

    注意

    如果在使用 Azure 门户,选择 VM 并单击“停止”即可关闭 VM。

  8. 停止 VM 后,捕获映像。 以下示例捕获名为 myVM 的 VM,并创建名为 myNewVM 的通用映像:

    azure vm capture -t myVM myNewVM
    

    -t 子命令将删除原始虚拟机。

    注意

    在 Azure 门户中,你可以从中心菜单中选择“映像”以捕获映像。 需提供以下映像信息:名称、资源组、位置、操作系统类型和存储 blob 路径。

  9. 新映像现在会出现在映像列表中,可以用于配置任何新的 VM。 你可以使用以下命令来查看它:

    azure vm image list
    

    Azure 门户中,新映像会出现在属于“计算”服务的“VM 映像(经典)”中。 可通过在 Azure 服务列表顶部单击“全部服务”,并在“计算”服务中查找来访问“VM 映像(经典)”

    Image capture successful

后续步骤

该映像已就绪,可用于创建 VM。 可以使用 Azure CLI 命令 azure vm create 并提供所创建的映像名称。 有关详细信息,请参阅将 Azure CLI 与经典部署模型配合使用

此外,也可以使用 Azure 门户创建自定义 VM,方法是使用映像方法并选择所创建的映像。 有关详细信息,请参阅如何创建自定义 VM

另请参阅:Azure Linux 代理用户指南