Creare una macchina virtuale Linux in una zona di disponibilità con l'interfaccia della riga di comando di AzureCreate a Linux virtual machine in an availability zone with the Azure CLI

Questo articolo descrive come usare l'interfaccia della riga di comando di Azure per creare una VM Linux in una zona di disponibilità di Azure.This article steps through using the Azure CLI to create a Linux VM in an Azure availability zone. Una zona di disponibilità è una zona fisicamente separata in un'area di Azure.An availability zone is a physically separate zone in an Azure region. Usare le zone di disponibilità per proteggere app e dati da un poco probabile errore o perdita di un intero data center.Use availability zones to protect your apps and data from an unlikely failure or loss of an entire datacenter.

Per usare una zona di disponibilità, creare la macchina virtuale in un'area di Azure supportata.To use an availability zone, create your virtual machine in a supported Azure region.

Verificare di avere installato la versione più recente dell'interfaccia della riga di comando di Azure e di avere eseguito l'accesso a un account di Azure con az login.Make sure that you have installed the latest Azure CLI and logged in to an Azure account with az login.

Verificare la disponibilità dello SKU di VMCheck VM SKU availability

La disponibilità delle dimensioni delle macchine virtuali, o SKU, può variare in base all'area e alla zona.The availability of VM sizes, or SKUs, may vary by region and zone. Per semplificare la pianificazione dell'uso delle zone di disponibilità, è possibile elencare gli SKU di VM disponibili per area e zona di Azure.To help you plan for the use of Availability Zones, you can list the available VM SKUs by Azure region and zone. Questa possibilità assicura la scelta di dimensioni adeguate per le macchine virtuali e l'ottenimento della resilienza desiderata tra le aree.This ability makes sure that you choose an appropriate VM size, and obtain the desired resiliency across zones. Per altre informazioni sui tipi e sulle dimensioni delle VM, vedere la panoramica delle dimensioni delle VM.For more information on the different VM types and sizes, see VM Sizes overview.

È possibile visualizzare gli SKU di VM disponibili con il comando az vm list-skus.You can view the available VM SKUs with the az vm list-skus command. L'esempio seguente elenca gli SKU di VM disponibili nell'area eastus2:The following example lists available VM SKUs in the eastus2 region:

az vm list-skus --location eastus2 --output table

L'output è simile all'esempio sintetico seguente, che mostra le zone di disponibilità nelle quali è disponibile ogni dimensione di VM:The output is similar to the following condensed example, which shows the Availability Zones in which each VM size is available:

ResourceType      Locations  Name               [...]    Tier       Size     Zones
----------------  ---------  -----------------           ---------  -------  -------
virtualMachines   eastus2    Standard_DS1_v2             Standard   DS1_v2   1,2,3
virtualMachines   eastus2    Standard_DS2_v2             Standard   DS2_v2   1,2,3
[...]
virtualMachines   eastus2    Standard_F1s                Standard   F1s      1,2,3
virtualMachines   eastus2    Standard_F2s                Standard   F2s      1,2,3
[...]
virtualMachines   eastus2    Standard_D2s_v3             Standard   D2_v3    1,2,3
virtualMachines   eastus2    Standard_D4s_v3             Standard   D4_v3    1,2,3
[...]
virtualMachines   eastus2    Standard_E2_v3              Standard   E2_v3    1,2,3
virtualMachines   eastus2    Standard_E4_v3              Standard   E4_v3    1,2,3

Crea gruppo di risorseCreate resource group

Creare un gruppo di risorse con il comando az group create.Create a resource group with the az group create command.

Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.An Azure resource group is a logical container into which Azure resources are deployed and managed. Il gruppo di risorse deve essere creato prima della macchina virtuale.A resource group must be created before a virtual machine. In questo esempio viene creato un gruppo di risorse denominato myResourceGroupVM nell'area eastus2.In this example, a resource group named myResourceGroupVM is created in the eastus2 region. Stati Uniti orientali 2 è una delle aree di Azure che supportano le zone di disponibilità.East US 2 is one of the Azure regions that supports availability zones.

az group create --name myResourceGroupVM --location eastus2

Il gruppo di risorse viene specificato quando si crea o si modifica una VM, come viene illustrato in questo articolo.The resource group is specified when creating or modifying a VM, which can be seen throughout this article.

Crea macchina virtualeCreate virtual machine

Crea una macchina virtuale usando il comando az vm create.Create a virtual machine with the az vm create command.

Per la creazione di una macchina virtuale sono disponibili diverse opzioni, ad esempio l'immagine del sistema operativo, il ridimensionamento del disco e le credenziali amministrative.When creating a virtual machine, several options are available such as operating system image, disk sizing, and administrative credentials. In questo esempio viene creata una macchina virtuale denominata myVM che esegue Ubuntu Server.In this example, a virtual machine is created with a name of myVM running Ubuntu Server. La VM viene creata nella zona disponibilità 1.The VM is created in availability zone 1. Per impostazione predefinita, la VM viene creata nella dimensione Standard_DS1_v2.By default, the VM is created in the Standard_DS1_v2 size.

az vm create --resource-group myResourceGroupVM --name myVM --location eastus2 --image UbuntuLTS --generate-ssh-keys --zone 1

La creazione della macchina virtuale può richiedere alcuni minuti.It may take a few minutes to create the VM. Dopo la creazione della macchina virtuale, l'interfaccia della riga di comando di Azure restituisce informazioni sulla VM.Once the VM has been created, the Azure CLI outputs information about the VM. Annotare il valore zones che indica la zona di disponibilità in cui è in esecuzione la VM.Take note of the zones value, which indicates the availability zone in which the VM is running.

{
  "fqdns": "",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus2",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVM",
  "zones": "1"
}

Confermare la zona per il disco gestito e un indirizzo IPConfirm zone for managed disk and IP address

Se la macchina virtuale è distribuita in una zona di disponibilità, viene creato un disco gestito per la macchina virtuale nella stessa zona di disponibilità.When the VM is deployed in an availability zone, a managed disk for the VM is created in the same availability zone. Per impostazione predefinita, in questa zona viene creato anche un indirizzo IP pubblico.By default, a public IP address is also created in that zone. Gli esempi seguenti ottengono informazioni su queste risorse.The following examples get information about these resources.

Per verificare che il disco gestito della macchina virtuale si trovi nella zona di disponibilità, usare il comando AZ VM Show per restituire l'ID del disco.To verify that the VM's managed disk is in the availability zone, use the az vm show command to return the disk ID. In questo esempio, l'ID disco viene archiviato in una variabile che viene usata in un passaggio successivo.In this example, the disk ID is stored in a variable that is used in a later step.

osdiskname=$(az vm show -g myResourceGroupVM -n myVM --query "storageProfile.osDisk.name" -o tsv)

Ora è possibile ottenere informazioni sul disco gestito:Now you can get information about the managed disk:

az disk show --resource-group myResourceGroupVM --name $osdiskname

L'output indica che il disco gestito si trova nella stessa zona di disponibilità della VM:The output shows that the managed disk is in the same availability zone as the VM:

{
  "creationData": {
    "createOption": "FromImage",
    "imageReference": {
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westeurope/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/16.04-LTS/Versions/latest",
      "lun": null
    },
    "sourceResourceId": null,
    "sourceUri": null,
    "storageAccountId": null
  },
  "diskSizeGb": 30,
  "encryptionSettings": null,
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/disks/osdisk_761c570dab",
  "location": "eastus2",
  "managedBy": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "name": "myVM_osdisk_761c570dab",
  "osType": "Linux",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroupVM",
  "sku": {
    "name": "Premium_LRS",
    "tier": "Premium"
  },
  "tags": {},
  "timeCreated": "2018-03-05T22:16:06.892752+00:00",
  "type": "Microsoft.Compute/disks",
  "zones": [
    "1"
  ]
}

Usare il comando az vm list-ip-addresses per restituire il nome della risorsa con indirizzo IP pubblico in myVM.Use the az vm list-ip-addresses command to return the name of public IP address resource in myVM. In questo esempio il nome è archiviato in una variabile che viene usata in un passaggio successivo.In this example, the name is stored in a variable that is used in a later step.

ipaddressname=$(az vm list-ip-addresses -g myResourceGroupVM -n myVM --query "[].virtualMachine.network.publicIpAddresses[].name" -o tsv)

Ora è possibile ottenere informazioni sull'indirizzo IP:Now you can get information about the IP address:

az network public-ip show --resource-group myResourceGroupVM --name $ipaddressname

L'output indica che l'indirizzo IP si trova nella stessa zona di disponibilità della VM:The output shows that the IP address is in the same availability zone as the VM:

{
  "dnsSettings": null,
  "etag": "W/\"b7ad25eb-3191-4c8f-9cec-c5e4a3a37d35\"",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Network/publicIPAddresses/myVMPublicIP",
  "idleTimeoutInMinutes": 4,
  "ipAddress": "52.174.34.95",
  "ipConfiguration": {
    "etag": null,
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Network/networkInterfaces/myVMVMNic/ipConfigurations/ipconfigmyVM",
    "name": null,
    "privateIpAddress": null,
    "privateIpAllocationMethod": null,
    "provisioningState": null,
    "publicIpAddress": null,
    "resourceGroup": "myResourceGroupVM",
    "subnet": null
  },
  "location": "eastUS2",
  "name": "myVMPublicIP",
  "provisioningState": "Succeeded",
  "publicIpAddressVersion": "IPv4",
  "publicIpAllocationMethod": "Dynamic",
  "resourceGroup": "myResourceGroupVM",
  "resourceGuid": "8c70a073-09be-4504-0000-000000000000",
  "tags": {},
  "type": "Microsoft.Network/publicIPAddresses",
  "zones": [
    "1"
  ]
}

Passaggi successiviNext steps

In questo articolo è stato illustrato come creare una macchina virtuale in una zona di disponibilità.In this article, you learned how to create a VM in an availability zone. Altre informazioni sulla disponibilità per le macchine virtuali di Azure.Learn more about availability for Azure VMs.