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.

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 <rgn>[sandbox resource group name]</rgn>
    
  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 <rgn>[sandbox resource group name]</rgn>
    

    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.