Criar uma máquina virtual em uma zona de disponibilidade usando a CLI do Azure
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
Este artigo descreve como usar a CLI do Azure para criar uma VM Linux em uma zona de disponibilidade do Azure. Uma zona de disponibilidade é uma zona separada fisicamente numa região do Azure. Utilize as zonas de disponibilidade para proteger as aplicações e os dados de uma falha pouco provável ou da perda de um datacenter completo.
Para utilizar uma zona de disponibilidade, crie a máquina virtual numa região suportada do Azure.
Certifique-se de que instalou a CLI do Azure mais recente e iniciou sessão numa conta do Azure com az login.
Verificar a disponibilidade de SKU de VM
A disponibilidade de tamanhos de VM ou SKUs poderá variar consoante a região e zona. Para ajudar a planear a utilização das Zonas de Disponibilidade, pode listar os SKUs de VM disponíveis por região e zona do Azure. Esta capacidade garante que escolhe um tamanho de VM adequado e obtém a resiliência pretendida nas zonas. Para obter mais informações sobre os diferentes tipos e tamanhos de VM, veja Descrição geral de Tamanhos de VM.
Você pode visualizar as SKUs de VM disponíveis com o comando az vm list-skus . O exemplo seguinte lista os SKUs de VM disponíveis na região eualeste2:
az vm list-skus --location eastus2 --output table
O resultado será semelhante ao seguinte exemplo condensado, que mostra as Zonas de Disponibilidade em que cada tamanho de VM está disponível:
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
Criar grupo de recursos
Crie um grupo de recursos com o comando az group create.
Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um grupo de recursos tem de ser criado antes de uma máquina virtual. Neste exemplo, um grupo de recursos chamado myResourceGroupVM é criado na região eastus2 . East US 2 é uma das regiões do Azure que dá suporte a zonas de disponibilidade.
az group create --name myResourceGroupVM --location eastus2
O grupo de recursos é especificado ao criar ou modificar uma VM, o que pode ser visto ao longo deste artigo.
Criar a máquina virtual
Crie uma máquina virtual com o comando az vm create.
Ao criar uma máquina virtual, várias opções estão disponíveis, como a imagem do sistema operativo, as credenciais administrativas e o dimensionamento do disco. Neste exemplo, é criada uma máquina virtual com o nome myVM a executar o Servidor Ubuntu. A VM é criada na zona de disponibilidade 1. Por padrão, a VM é criada no tamanho Standard_DS1_v2.
az vm create --resource-group myResourceGroupVM --name myVM --location eastus2 --image Ubuntu2204 --generate-ssh-keys --zone 1
A criação da VM pode demorar alguns minutos. Quando a VM tiver sido criada, a CLI do Azure produz informações sobre a VM. Anote o zones
valor, que indica a zona de disponibilidade na qual a VM está sendo executada.
{
"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"
}
Confirmar zona para disco gerenciado e endereço IP
Quando a VM é implantada em uma zona de disponibilidade, um disco gerenciado para a VM é criado na mesma zona de disponibilidade. Por padrão, um endereço IP público também é criado nessa zona. Os exemplos a seguir obtêm informações sobre esses recursos.
Para verificar se o disco gerenciado da VM está na zona de disponibilidade, use o comando az vm show para retornar o ID do disco. Neste exemplo, o ID do disco é armazenado em uma variável que é usada em uma etapa posterior.
osdiskname=$(az vm show -g myResourceGroupVM -n myVM --query "storageProfile.osDisk.name" -o tsv)
Agora você pode obter informações sobre o disco gerenciado:
az disk show --resource-group myResourceGroupVM --name $osdiskname
O resultado mostra que o disco gerido está na mesma zona de disponibilidade que a 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"
]
}
Use o comando az vm list-ip-addresses para retornar o nome do recurso de endereço IP público em myVM. Neste exemplo, o nome é armazenado em uma variável que é usada em uma etapa posterior.
ipaddressname=$(az vm list-ip-addresses -g myResourceGroupVM -n myVM --query "[].virtualMachine.network.publicIpAddresses[].name" -o tsv)
Agora você pode obter informações sobre o endereço IP:
az network public-ip show --resource-group myResourceGroupVM --name $ipaddressname
A saída mostra que o endereço IP está na mesma zona de disponibilidade que a 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"
]
}
Próximos passos
Neste artigo, aprendeu a criar uma VM numa zona de disponibilidade. Saiba mais sobre a disponibilidade para VMs do Azure.