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.
Observação
Este exercício é opcional. Se você quiser concluir este exercício, precisará criar uma assinatura do Azure antes de começar. Se você não tiver uma conta do Azure ou não quiser criar uma no momento, leia as instruções para entender as informações que estão sendo apresentadas.
Observação
Você precisa usar um grupo de recursos para concluir as etapas neste exercício. Você pode usar um grupo de recursos que já criou ou pode criar um novo grupo de recursos especificamente para este exercício. Se você optar por criar um novo grupo de recursos, isso facilitará a limpeza de todos os recursos criados durante a conclusão do exercício. Se você não tiver um grupo de recursos existente ou quiser criar um novo especificamente para este exercício, siga as etapas em Usar o portal do Azure e o Azure Resource Manager para gerenciar grupos de recursos para criar um grupo de recursos usando o portal do Azure ou siga as etapas em Gerenciar grupos de recursos do Azure usando a CLI do Azure para criar um grupo de recursos usando a CLI do Azure.
Exercício – Criar uma VM do Linux com a CLI do Azure
Veja como criar uma VM do Azure com a CLI do Azure:
Abra o Azure Cloud Shell por meio do portal do Azure ou usando o botão Abrir Cloud Shell localizado no canto superior direito de muitos blocos de código da CLI do Azure.
Use o comando
az vm createpara criar a VM.- Especifique o nome do grupo de recursos. Substitua myResourceGroupName no exemplo a seguir pelo nome de um grupo de recursos existente ou pelo nome do grupo de recursos que você criou para este exercício.
- 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 do Azure.
- 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 # Create variables with values of your choice. rgName="myResourceGroupName" 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-keysDica
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 do Cloud Shell estiver aguardando a entrada de adição, 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 listeaz vm showpara 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 tableObtenha 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 $vmNameObtenha 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 $publicIPConectar-se à VM.
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserNameSaia 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 seleção 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 tableObtenha SKUs disponíveis para um local:
Dependendo de qual
--locationvocê 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 tableObtenha opções de redimensionamento disponíveis para uma VM existente:
az vm list-vm-resize-options --resource-group $rgName --name $vmName --output tableMostrar detalhes de 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 $vmNameInsira 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 $vmNameExcluir uma VM:
Após interromper a VM, exclua-a executando o comando
az vm delete.az vm delete --resource-group $rgName --name $vmNameInsira 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.