Exercício – Criar recursos usando um script da CLI do Azure

Concluído

Nesta unidade, você continuará com o exemplo de uma empresa que desenvolve ferramentas de administração do Linux. O objetivo é usar máquinas virtuais (VMs) do Linux para que potenciais clientes possam testar seu software. Com um grupo de recursos já configurado, chegou a hora de criar as VMs.

Sua empresa conseguir um estande em uma grande feira comercial do Linux. Você pretende montar uma área de demonstração com três terminais, cada um conectado a uma VM do Linux diferente. Para garantir que as VMs comecem do zero todas as manhãs, é necessário deletá-las e recriá-las ao final de cada dia. Criar as VMs manualmente após um longo dia é propenso a erros, portanto, você precisa escrever um script da CLI do Azure para automatizar o processo de criação da 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.

Escrever um script para criar máquinas virtuais

Siga estas etapas para programar um script no Azure Cloud Shell que automatiza a criação de máquinas virtuais.

Observação

Normalmente, você se autenticaria no Azure usando suas credenciais com az login, mas no Cloud Shell, você já está autenticado, então não precisa se preocupar com isso.

  1. 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.

  2. Definir sua assinatura do Azure

    az account set --subscription "my subscription name or ID"
    
  3. Usando um editor de texto de sua escolha, salve o script a seguir em sua unidade local. Neste exemplo, o arquivo é nomeado msdocs-script-expanded.sh.

    #!/bin/bash
    
    # Assign parameters to variables
    vmCount=$1
    resourceGroupPrefix=$2
    location=$3
    vmNamePrefix=$4
    adminUserPrefix=$5
    shift 5
    images=("$@")
    
    # Loop 
    for i in $(seq 1 $vmCount)
    do
      let "randomIdentifier=$RANDOM*$RANDOM"
      resourceGroupName=$resourceGroupPrefix-$randomIdentifier
      location=westus
      adminUserName=$adminUserPrefix-$randomIdentifier
      vmName=$vmNamePrefix-$randomIdentifier
      vmImage=${images[$((i-1)) % ${#images[@]}]}
    
      echo "Creating VM $vmName on $vmImage with admin $adminUserName in resource group $resourceGroupName"
    
      # create the resource group
      az group create --name $resourceGroupName --location $location
    
      # create the VM
      az vm create \
          --resource-group $resourceGroupName \
          --location $location \
          --name $vmName \
          --generate-ssh-keys \
          --admin-username $adminUserName \
          --image $vmImage
    
    done
    
    
  4. Carregue o arquivo na unidade do Cloud Shell. A maneira mais fácil é usar a opção de menu Gerenciar arquivos.

Executar o script

  1. Execute o script com o seguinte comando:

    #!/bin/bash
    # make your file executable
    chmod +x msdocs-script-expanded.sh
    
    # remove Windows line continuation characters
    sed -i -e 's/\r$//' msdocs-script-expanded.sh
    
    # Run the script
    ./msdocs-script-expanded.sh 3 msdocs-rg eastus2 msdocsvm msdocsadmin Debian11 Debian11 Ubuntu2204  
    
  2. Aguarde a conclusão. O script demora vários minutos para ser concluído.

  3. Verifique as VMs. Depois que terminar o script, confirme se tudo foi concluído com sucesso listando as VMs no grupo de recursos:

    az vm list -o table
    

    Você deverá ver três VMs, cada uma com um nome exclusivo e em um grupo de recursos separado.

Você conseguiu desenvolver um script que automatiza a criação de três VMs, cada uma em um grupo de recursos específico, garantindo que estejam prontas para as demonstrações diárias na feira. Embora o script seja simples e direto, ele agiliza bastante um processo que seria demorado e sujeito a erros se fosse feito manualmente pelo portal do Azure.