使用 Azure CLI 和托管磁盘创建 Azure Linux VM 的副本

本文说明了如何使用 Azure CLI 2.0 和 Azure Resource Manager 部署模型创建运行 Linux 的 Azure 虚拟机 (VM) 的副本。

还可以上传 VHD 并从中创建 VM

先决条件

  • 安装 Azure CLI 2.0

  • 使用 az login 登录到一个 Azure 帐户。

  • 使用一个 Azure VM 作为副本的来源。

Note

在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

步骤 1:停止源 VM

使用 az vm deallocate 解除分配源 VM。 以下示例解除分配资源组myResourceGroup 中名为 myVM 的 VM:

az vm deallocate \
    --resource-group myResourceGroup \
    --name myVM

步骤 2:复制源 VM

若要复制 VM,请创建基础虚拟硬盘的副本。 此过程将一个专用 VHD 创建为托管磁盘,其中包含与源 VM 相同的配置和设置。

有关 Azure 托管磁盘的详细信息,请参阅 Azure 托管磁盘概述

  1. 使用 az vm list 列出每个 VM 及其 OS 磁盘的名称。 以下示例列出了名为 myResourceGroup 的资源组中的所有 VM:

    az vm list -g myResourceGroup \
         --query '[].{Name:name,DiskName:storageProfile.osDisk.name}' \
         --output table
    

    输出类似于以下示例:

    Name    DiskName
    ------  --------
    myVM    myDisk
    
  2. 通过使用 az disk create 创建新的托管磁盘来复制磁盘。 以下示例基于名为 myDisk 的托管磁盘创建名为 myCopiedDisk 的磁盘:

    az disk create --resource-group myResourceGroup \
         --name myCopiedDisk --source myDisk
    
  3. 现在请使用 az disk list 验证资源组中的托管磁盘。 以下示例列出了名为 myResourceGroup 的资源组中的托管磁盘:

    az disk list --resource-group myResourceGroup --output table
    

步骤 3:设置虚拟网络

以下可选步骤可创建新的虚拟网络、子网、公共 IP 地址和虚拟网络接口卡 (NIC)。

在复制 VM 来完成故障排除或其他部署操作时,用户可能不希望使用现有虚拟网络中的 VM。

如果希望为复制的 VM 创建虚拟网络基础结构,请按后续几个步骤操作。 如果不希望创建虚拟网络,请跳到步骤 4:创建 VM

  1. 使用 az network vnet create 创建虚拟网络。 以下示例创建一个名为 myVnet 的虚拟网络和一个名为 mySubnet 的子网:

    az network vnet create --resource-group myResourceGroup \
        --location chinanorth --name myVnet \
        --address-prefix 192.168.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 192.168.1.0/24
    
  2. 使用 az network public-ip create 创建公共 IP。 以下示例创建一个名为 myPublicIP 的公共 IP,其 DNS 名称为 mypublicdns。 (DNS 名称必须唯一,因此请提供唯一名称。)

    az network public-ip create --resource-group myResourceGroup \
        --location chinanorth --name myPublicIP --dns-name mypublicdns \
        --allocation-method static --idle-timeout 4
    
  3. 使用 az network nic create 创建 NIC。 以下示例创建一个附加到 mySubnet 子网且名为 myNic 的 NIC:

    az network nic create --resource-group myResourceGroup \
        --location chinanorth --name myNic \
        --vnet-name myVnet --subnet mySubnet \
        --public-ip-address myPublicIP
    

步骤 4:创建 VM

现在可使用 az vm create 创建 VM。

指定复制的要用作 OS 磁盘的托管磁盘 (--attach-os-disk),如下所示:

az vm create --resource-group myResourceGroup \
    --name myCopiedVM --nics myNic \
    --size Standard_DS1_v2 --os-type Linux \
    --attach-os-disk myCopiedDisk

后续步骤

若要了解如何使用 Azure CLI 管理新 VM,请参阅 Azure Resource Manager 的 Azure CLI 命令