Exercício - Criar recursos do Azure com o Azure PowerShell usando um script
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.
Mude para a sua pasta pessoal:
Set-Location -Path $HOME
Crie um novo arquivo de script do PowerShell:
New-Item -Name ConferenceDailyReset.ps1 -ItemType File
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.
Defina um parâmetro para o nome do grupo de recursos:
Adicione a linha seguinte ao seu script:
param ( [string]$ResourceGroupName )
Solicitar credenciais de administrador de VM:
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
Crie um loop para executar três vezes:
$vms = 'web','app','sql' foreach ($vm in $vms) { $vm }
No loop, retorne o nome de cada VM:
Write-Output "Creating VM: $vm"
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
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
Execute o script usando o seguinte comando:
./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Aguarde a conclusão. O script demora alguns minutos a ser concluído.
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.