Exercício - Criar um recurso do Azure interativamente com a CLI do Azure
No cenário original, você deve criar máquinas virtuais (VMs) para testar seu software CRM (Customer Relationship Management). Quando uma nova compilação estiver disponível, você deseja criar uma nova VM para testar toda a experiência de instalação a partir de uma imagem limpa. Quando o teste estiver concluído, você poderá excluir a VM.
Vamos tentar os comandos para criar uma VM.
Observação
Este exercício é opcional. Se quiser concluir este exercício, terá de criar uma subscrição 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 deste 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 ao concluir o 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 Gerenciador de Recursos do Azure para gerenciar grupos de recursos para criar um grupo de recursos usando o portal do Azure, ou você pode seguir 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 Linux com a CLI do Azure
Veja como criar uma nova VM do Azure com a CLI do Azure:
Abra o Azure Cloud Shell através do portal Azure ou utilizando o botão Open Cloud Shell localizado no canto superior direito de muitos blocos de código Azure CLI.
Use o
az vm createcomando para criar a VM.- Especifique o nome do seu 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 uma localização próxima de si na lista de localizações disponíveis no 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-keysGorjeta
Você acabou de usar o botão Copiar e notou que todos os caracteres de continuação de linha foram removidos? Este comportamento é a predefinição. Como a CLI do Azure pode ser executada em muitos ambientes com caracteres de continuação de linha diferentes, o botão de cópia 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 seu script não foi copiado corretamente e o terminal Cloud Shell estiver à espera de input adicional, use CTRL + Z para voltar a um prompt e tente novamente.
Aguarde a criação da VM 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
az vm listcomandos eaz vm showpara obter informações específicas sobre a VM. Seguem-se alguns exemplos:Vários desses scripts usam nomes de variáveis e valores armazenados em etapas anteriores.
Obtenha uma lista de todas as VMs em formato de tabela.
az vm list --output tableObtenha informações sobre uma única 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 propriedade aninhados 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 $publicIPLiga-te à VM.
#!/bin/bash az ssh vm --private-key-file \path\to\private\key \ --resource-group $rgName \ --name $vmName \ --local-user $vmAdminUserNameSaia digitando sair.
Saiba mais sobre as opções de VM
Quando trabalhas com os recursos do Azure na linha de comandos, não estás a usar o portal do Azure, que te oferece frequentemente uma lista de opções de propriedades. Por exemplo, uma lista de locais disponíveis e tamanhos de VM. A CLI do Azure tem vários comandos em muitos de seus grupos de comandos que fornecem essas informações. Aqui estão alguns exemplos de VMs:
Gorjeta
O formato CLI --output table do Azure não retorna 100% das informações disponíveis, mas geralmente facilita a leitura de grandes resultados de comando. Use o --query parâmetro 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 do que você selecionar, pode levar um ou dois minutos para que
--locationa CLI do Azure retorne 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 num grupo de recursos.
Se você tiver optado 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 a ser cobrada.
az vm stop --resource-group $rgName --name $vmNameDigite Y e pressione Enter quando solicitado a continuar.
Desalocar uma VM:
Para evitar ser cobrado por uma VM parada, você pode desalocá-la. A desalocação de VMs 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 (Deslocalizado)'.
az vm deallocate --resource-group $rgName --name $vmNameExcluir uma VM:
Quando a VM parar, exclua-a executando o
az vm deletecomando.az vm delete --resource-group $rgName --name $vmNameDigite Y e pressione Enter quando solicitado a continuar.
Enquanto você executava esses comandos interativamente, uma abordagem melhor é escrever um script da CLI do Azure. Os scripts permitem que você reutilize 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.