Exercício – Crie um Recurso do Azure de forma interativa com a CLI do Azure
No cenário original, você deverá criar VMs (máquinas virtuais) para testar seu software de CRM (gerenciamento de relacionamento com o cliente). Quando uma nova compilação estiver disponível, você deseja criar uma nova VM para testar toda a experiência de instalação de uma imagem limpa. Após concluir o teste, você poderá excluir a VM.
Vamos experimentar os comandos para criar uma VM.
Exercício – Criar uma VM do Linux com a CLI do Azure
Como você está utilizando a Área Restrita do Azure, não é necessário criar um grupo de recursos. Em vez disso, use o grupo de recursos de área restrita existente
Veja como criar uma VM do Azure com a CLI do Azure:
Use o comando
az vm create
para criar a VM.Use o comando
az group list
para obter o nome do grupo de recursos de área restrita.Atribua um nome à VM seguindo os padrões de nomenclatura da sua organização.
Escolha um local próximo a você na lista de locais disponíveis da área restrita do Azure:
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Use a imagem do Linux:
Ubuntu2204
.Atribua um nome de usuário de administrador seguindo os padrões de nomenclatura da sua organização.
#!/bin/bash # Get the single resource group name created by the sandbox. rgName=$(az group list --query "[].{Name:name}" --output tsv) echo $rgName # Create additional variables with values of your choice. vmName="msdocs-vm-01" vmLocation="westus" vmImage="Ubuntu2204" vmAdminUserName="myAzureUserName" # Create the VM az vm create \ --resource-group $rgName \ --name $vmName \ --location $vmLocation \ --image $vmImage \ --public-ip-sku Standard \ --admin-username $vmAdminUserName \ --generate-ssh-keys
Dica
Você acabou de usar o botão Copiar e notou que todos os caracteres de continuação de linha foram removidos? Este comportamento ocorre por design. Como a CLI do Azure pode ser executada em muitos ambientes com caracteres de continuação de linha diferentes, o botão copiar os remove. Se preferir copiar um script formatado, use o mouse para selecionar e copiar o conteúdo do bloco de código.
Para colar no Azure Cloud Shell, clique com o botão direito do mouse em uma nova linha no terminal do Cloud Shell e selecione Colar ou use o atalho de teclado Shift + Insert (⌘ + V no macOS).
Se o script não tiver sido copiado corretamente e o terminal de área restrita estiver aguardando entrada adicional, use CTRL + Z para retornar a um prompt e tentar novamente.
Aguarde a criação da VM do Linux:
O processo de criação da VM leva alguns minutos para ser concluído.
Obter informações sobre a VM
Quando concluída, a CLI do Azure retorna informações sobre a VM no formato JSON. Use os comandos
az vm list
eaz vm show
para obter informações específicas sobre a VM. Estes são alguns exemplos:Vários desses scripts usam nomes de variáveis e valores armazenados em etapas anteriores.
Obtenha uma lista de todas as VMs no formato de tabela.
az vm list --output table
Obtenha informações sobre uma VM no formato JSON.
Parte dessa saída é exibida depois que uma nova VM é criada. No entanto, é útil retornar mais informações ao descobrir nomes de propriedades aninhadas para referência em um script. Os nomes de propriedade diferenciam maiúsculas de minúsculas.
az vm show --resource-group $rgName --name $vmName
Obtenha informações sobre as propriedades da VM.
# Get the time the VM was created az vm show --resource-group $rgName --name $vmName --query "timeCreated" # Get the OS disk storage account type az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"
Armazene uma propriedade de uma VM em uma variável.
A CLI do Azure tem vários tipos de saída disponíveis. JSON é o padrão, mas ao armazenar valores em variáveis, remova a formatação extra com
--output tsv
.#!/bin/bash # Store the VM id vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv) echo $vmID # Store the public IP address publicIP=$(az vm list-ip-addresses \ --resource-group $rgName \ --name $vmName \ --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv) echo $publicIP
Conectar-se à VM.**
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserName
Saia digitando saída.
Saiba mais sobre as opções de VM
Ao trabalhar com recursos do Azure na linha de comando, você não está usando o portal do Azure, que geralmente oferece uma lista de opções de propriedade. Por exemplo, uma lista de locais e tamanhos de VM disponíveis. Nos grupos de comandos da CLI do Azure, há vários comandos que fornecem essas informações. Veja alguns exemplos para VMs:
Dica
O formato --output table
da CLI do Azure não retorna 100% das informações disponíveis, mas geralmente facilita a leitura de grandes resultados de comando. Use o parâmetro --query
para especificar as informações nas quais você está mais interessado.
Obtenha tamanhos de VM disponíveis para um local:
az vm list-sizes --location westus --output table
Obtenha SKUs disponíveis para um local:
Dependendo de qual
--location
você selecionar, pode levar um minuto ou dois para a CLI do Azure retornar uma lista completa de SKUs.# virtual machines az vm list-skus --location westus --resource-type virtualMachines --output table # disks az vm list-skus --location westus --resource-type disks --output table
Obtenha opções de redimensionamento disponíveis para uma VM existente:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
Mostrar detalhes para todas as VMs em um grupo de recursos.**
Se você optou por trabalhar em seu ambiente local e tiver várias VMs em sua assinatura, consulte VMs que atendam a um critério de filtro.
#!/bin/bash # details of all VMs in a specified resource group az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv) # list of all VMs created in the last 7 days createDate=$(date +%F -d "-7days") az vm list --resource-group $rgName \ --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \ --output table # list all VMs whose disks are of a certain type # first get a list of the disk types or organization is using az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table diskType="Premium_LRS" az vm list --resource-group $rgName \ --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \ --output table
Parar ou excluir uma VM
Desligue a VM:
Você pode desligar (parar) uma VM em execução, embora a VM continue sendo cobrada.
az vm stop --resource-group $rgName --name $vmName
Insira Y e pressione Enter quando solicitado a continuar.
Desalocar uma VM:
Para evitar ser cobrado por uma VM parada, você pode desalocá-la. As VMs desalocadas contêm recursos que não são mais alocados (os encargos não se aplicam mais). O status da VM muda de 'Parado' para 'Parado (Desalocado)'.
az vm deallocate --resource-group $rgName --name $vmName
Excluir uma VM:
Após interromper a VM, exclua-a executando o comando
az vm delete
.az vm delete --resource-group $rgName --name $vmName
Insira Y e pressione Enter quando solicitado a continuar.
Embora você tenha executado esses comandos interativamente, uma abordagem melhor é gravar um script da CLI do Azure. Os scripts permitem reutilizar a lógica para criar ou excluir uma VM no futuro.
Na próxima unidade, vamos automatizar essas tarefas usando um script da CLI do Azure.