Exercício – Criar e salvar scripts no Azure PowerShell
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:
Mude para a pasta base no Cloud Shell.
cd $HOME\clouddrive
Crie um arquivo de texto chamado ConferenceDailyReset.ps1.
touch "./ConferenceDailyReset.ps1"
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.
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.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."
Crie um loop que será executado três vezes:
For ($i = 1; $i -le 3; $i++) { }
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
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
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
Salve o arquivo e feche o editor usando o menu de contexto "..." no canto superior direito do editor (ou use Ctrl + Q).
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.