Exercício - Criar recursos do Azure com o Azure PowerShell usando um script

Concluído

Nesta unidade, você continua com o exemplo de uma empresa que desenvolve ferramentas de administração Linux. O objetivo é usar máquinas virtuais (VMs) Linux para permitir que clientes em potencial testem seu software. Com um grupo de recursos já configurado, é hora de criar as VMs.

Sua empresa garantiu um estande em uma grande feira de negócios Linux. Você planeja configurar uma área de demonstração com três terminais, cada um conectado a uma VM Linux separada. Você deve excluir as VMs e recriá-las no final de cada dia para que comecem de novo todas as manhãs. Criar as VMs manualmente após um longo dia é propenso a erros, portanto, você precisa escrever um script do PowerShell para automatizar o processo de criação da VM.

Nota

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.

Escrever um script para criar máquinas virtuais

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

Nota

Normalmente, você se autenticaria no Azure usando suas credenciais com Connect-AzAccount, mas no Cloud Shell, você já está autenticado, portanto, esta etapa é desnecessária.

  1. Mude para a sua pasta pessoal:

    Set-Location -Path $HOME
    
  2. Crie um novo arquivo de script do PowerShell:

    New-Item -Name ConferenceDailyReset.ps1 -ItemType File
    
  3. Abra o editor integrado do Visual Studio Code (VS Code):

    code ./ConferenceDailyReset.ps1
    

    Gorjeta

    O editor Cloud Shell integrado também suporta vim, nano e emacs se você preferir usar um desses editores.

  4. Defina um parâmetro para o nome do grupo de recursos:

    Adicione a linha seguinte ao seu script:

    param (
        [string]$ResourceGroupName
    )
    
  5. Solicitar credenciais de administrador de VM:

    $adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
    
  6. Crie um loop para executar três vezes:

    $vms = 'web','app','sql'
    foreach ($vm in $vms) {
        $vm
    }
    
  7. No loop, retorne o nome de cada VM:

    Write-Output "Creating VM: $vm"
    
  8. Crie uma VM usando a $vm variável:

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
    
  9. Salve o arquivo:

    Para salvar o script, use o menu de contexto de reticências (...) no canto superior direito do editor ou o atalho de teclado Ctrl + S.

Script concluído

O script concluído deve ser semelhante ao exemplo a seguir:

param (
    [string]$ResourceGroupName
)

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

$vms = 'web','app','sql'

foreach ($vm in $vms) {

    Write-Output "Creating VM: $vm"

    $azVmParams = @{
        ResourceGroupName = $ResourceGroupName
        Name              = $vm
        Credential        = $adminCredential
        Image             = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
        OpenPorts         = 22
    }
    New-AzVm @azVmParams
}

Depois de confirmar que o script se parece com o código do exemplo anterior, feche o editor usando o menu de contexto de reticências (...) no canto superior direito do editor ou o atalho de teclado Ctrl + Q.

Executar o script

  1. Execute o script usando o seguinte comando:

    ./ConferenceDailyReset.ps1 -ResourceGroupName myResourceGroupName
    
  2. Aguarde a conclusão. O script demora alguns minutos a ser concluído.

  3. Verifique as VMs. Quando o script terminar, verifique-o foi concluído com êxito listando as VMs no grupo de recursos:

    Get-AzVM -ResourceGroupName myResourceGroupName
    

    Deverá ver três VMs, cada uma com um nome exclusivo.

Você criou com sucesso um script que automatiza a criação de três VMs, cada uma em um grupo de recursos específico, garantindo que elas estejam prontas para demonstrações diárias na feira. Embora o script seja curto e direto, ele acelera significativamente um processo que, de outra forma, seria demorado e propenso a erros se executado manualmente por meio do portal do Azure.