Exercício – Criar um recurso do Azure interativamente com o Azure PowerShell
No cenário original, você deverá criar VMs (máquinas virtuais) para testar seu software de CRM (gerenciamento de relacionamento com o cliente). Quando uma nova compilação estiver disponível, você deseja criar uma nova VM para testar toda a experiência de instalação de uma imagem limpa. Após concluir o teste, você poderá excluir a VM.
Vamos experimentar os comandos para criar uma VM.
Criar uma VM do Linux com o Azure PowerShell
Como você está utilizando a Área Restrita do Azure, não é necessário criar um grupo de recursos. Em vez disso, use o grupo de recursos de área restrita existente
Veja como criar uma VM do Azure com o Azure PowerShell:
Use o cmdlet
New-AzVM
para criar a VM.Especifique o grupo de recursos da área restrita:
[nome do grupo de recursos da área restrita] .Nomeie a VM seguindo os padrões de nomenclatura da sua organização.
Escolha um local próximo a você na lista de locais disponíveis da área restrita do Azure.
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Use a imagem do Ubuntu Linux:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest
.Use o cmdlet
Get-Credential
para definir as credenciais de administrador da VM.Adicione o parâmetro OpenPorts com a porta
22
para acesso SSH.Crie um nome de endereço IP público para entrada do SSH.
$azVmParams = @{ ResourceGroupName = '<rgn>[sandbox resource group name]</rgn>' Name = 'testvm-eus-01' Credential = (Get-Credential) Location = 'eastus' Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 PublicIpAddressName = 'testvm-eus-01' } New-AzVm @azVmParams
Dica
Use o botão Copiar para copiar os comandos para a área de transferência. Para colar o conteúdo, clique com o botão direito do mouse em uma nova linha no terminal do Cloud Shell e selecione Colar ou use o atalho de teclado Shift + Insert (⌘ + V no macOS).
Digitar as Credenciais:
Quando solicitado, insira um nome de usuário e uma senha, seguindo as diretrizes: as senhas devem ter de 12 a 123 caracteres e atender a três dos quatro requisitos de complexidade a seguir: caracteres minúsculos, caracteres maiúsculos, dígitos e caracteres especiais (correspondência regex [\W_]). Para obter mais informações, consulte Perguntas frequentes sobre VM do Linux.
Aguarde a criação da VM:
O processo de criação da VM leva alguns minutos para ser concluído.
Consulte a VM:
Quando concluída, consulte a VM e atribua o objeto de VM a uma variável (
$vm
).$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Exibir informações sobre a VM:
Para exibir informações sobre a VM, exiba o conteúdo da variável.
$vm
Exemplo de saída:
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01 VmId : 00000000-0000-0000-0000-000000000000 Name : testvm-eus-01 Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} ...
Inspecione as propriedades da VM:
Inspecione objetos complexos por meio do operador de acesso de membro (
.
). Por exemplo, para visualizar as propriedades no objetoVMSize
associado à seção HardwareProfile, execute o comando a seguir:$vm.HardwareProfile
Ou, para obter informações sobre um dos discos, execute o seguinte comando:
$vm.StorageProfile.OsDisk
Obter os tamanhos de VM disponíveis:
Passe o objeto de VM para outros cmdlets para obter os tamanhos disponíveis:
$vm | Get-AzVMSize
Obter o endereço IP público:
Recupere o endereço IP público para se conectar à VM e armazená-lo em uma variável.
$ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
Conectar-se à VM:
Conecte-se à VM com o SSH usando o endereço IP da variável. Por exemplo, se o nome de usuário for
bob
, use o seguinte comando:ssh bob@$($ip.IpAddress)
Saia digitando saída.
Excluir uma VM
Para experimentar mais comandos, vamos excluir a VM. Siga estas etapas:
Desligue a VM:
Execute o comando a seguir:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Insira Y e pressione Enter quando solicitado a continuar.
Exclua a VM:
Após interromper a VM, exclua-a executando o cmdlet
Remove-AzVM
.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Insira Y e pressione Enter quando solicitado a continuar.
Listar todos os recursos no grupo de recursos:
Use o cmdlet
Get-AzResource
para listar todos os recursos no grupo de recursos. Os resultados são canalizados paraSelect-Object
retornar propriedades específicas:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Você deverá visualizar vários recursos, incluindo discos, redes virtuais etc., que ainda existem:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/virtualNetworks <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/publicIPAddresses <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkInterfaces <rgn>[sandbox resource group name]</rgn> testvm-eus-01_OsDisk_1 Microsoft.Compute/disks <rgn>[sandbox resource group name]</rgn>
O comando
Remove-AzVM
exclui apenas a VM. Ele não limpa nenhum outro recurso. Para limpá-los manualmente, siga estas etapas:Exclua o adaptador de rede:
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterface
Insira Y e pressione Enter quando solicitado a continuar.
Exclua o grupo de segurança de rede:
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup
Insira Y e pressione Enter quando solicitado a continuar.
Excluir o endereço IP público:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress
Insira Y e pressione Enter quando solicitado a continuar.
Excluir a rede virtual:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork
Insira Y e pressione Enter quando solicitado a continuar.
Exclua os discos do sistema operacional gerenciado:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk
Insira Y e pressione Enter quando solicitado a continuar.
Verifique se todos os recursos foram removidos:
Verifique o grupo de recursos para garantir que todos os recursos sejam removidos:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Embora você tenha executado esses comandos interativamente, uma abordagem melhor é gravar um script do PowerShell. Os scripts permitem reutilizar a lógica para criar ou excluir uma VM no futuro
Em seguida, vamos examinar como automatizar essas tarefas usando um script do PowerShell.