如何捕获经典 Linux 虚拟机以用作映像

Important

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

本文演示如何捕获运行 Linux 的经典 Azure 虚拟机 (VM) 作为创建其他虚拟机的映像。 此映像包括 OS 磁盘和附加到 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 获得)和关联的数据

      Note

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

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

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

    Note

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

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

    Note

    登录到 Azure 门户。

  6. 请确保处于服务管理模式下:

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

    azure vm shutdown myVM
    

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

    Note

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

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

    azure vm capture -t myVM myNewVM
    

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

    Note

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

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

    azure vm image list
    

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

    成功捕获映像

后续步骤

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

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

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