Exercício – Criar e salvar scripts no Azure PowerShell

Concluído

Nesta unidade, você continuará com o exemplo de uma empresa que cria ferramentas de administração do Linux. Lembre-se de que você planeja usar VMs do Linux para permitir que clientes potenciais testem seu software. O grupo de recursos está pronto e agora é hora de criar as VMs.

Sua empresa alugou um estande em uma grande exposição do Linux. Você pretende montar uma área de demonstração que contém três terminais, cada um conectado a uma VM do Linux separada. No final de cada dia, você deseja excluir as VMs e recriá-las para que comecem do zero todas as manhãs. Se você criar as VMs manualmente após o trabalho quando estiver cansado, estará propenso a erros. Você deseja escrever um script do PowerShell para automatizar o processo de criação das VMs.

Escrever um script para criar máquinas virtuais

Siga estas etapas no Cloud Shell no lado direito para escrever o script:

  1. Mude para a pasta base no Cloud Shell.

    cd $HOME\clouddrive
    
  2. Crie um arquivo de texto chamado ConferenceDailyReset.ps1.

    touch "./ConferenceDailyReset.ps1"
    
  3. Abra o editor integrado e selecione o arquivo ConferenceDailyReset.ps1.

    code "./ConferenceDailyReset.ps1"
    

    Dica

    O Cloud Shell integrado também dá suporte a vim, nano e emacs, caso você prefira usar um desses editores.

  4. Comece capturando o parâmetro de entrada em uma variável. Adicione a seguinte linha ao script.

    param([string]$resourceGroup)
    

    Observação

    Normalmente, você precisará se autenticar no Azure usando suas credenciais com Connect-AzAccount e você pode fazer isso no script. No entanto, no ambiente do Cloud Shell, você já está autenticado, portanto, isso é desnecessário.

  5. Solicite um nome de usuário e uma senha para a conta do administrador da VM e capture o resultado em uma variável:

    $adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."
    
  6. Crie um loop que será executado três vezes:

    For ($i = 1; $i -le 3; $i++) 
    {
    
    }
    
  7. No corpo do loop, crie um nome para cada VM e armazene-o em uma variável e mostre no console:

    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    
  8. Em seguida, crie uma VM usando a variável $vmName:

    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
    
  9. Salve o arquivo. Você pode usar o menu "..." no canto superior direito do editor. Também há teclas de atalho comuns para Salvar, como Ctrl + S.

O script concluído deverá ter o seguinte código:

param([string]$resourceGroup)

$adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."

For ($i = 1; $i -le 3; $i++)
{
    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
}

Executar o script

  1. Salve o arquivo e feche o editor usando o menu de contexto "..." no canto superior direito do editor (ou use Ctrl + Q).

  2. Execute o script.

    ./ConferenceDailyReset.ps1 <rgn>[sandbox resource group name]</rgn>
    

    O script levará vários minutos para ser concluído. Quando ele for concluído, verifique se ele foi executado com êxito examinando os recursos que agora estão presentes no grupo de recursos:

    Get-AzResource -ResourceType Microsoft.Compute/virtualMachines
    

Você deve ter três VMs, cada uma com um nome exclusivo.

Você escreveu um script que automatizou a criação de três VMs no grupo de recursos indicado por um parâmetro de script. O script é curto e simples, mas automatiza um processo que levaria muito tempo para ser concluído manualmente com o portal do Azure.