Exercício – Criar um recurso do Azure interativamente com o Azure PowerShell

Concluído

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.

Observação

Este exercício é opcional. Se você quiser concluir este exercício, precisará criar uma assinatura 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.

Observação

Você precisa usar um grupo de recursos para concluir as etapas neste exercício. Você pode usar um grupo de recursos que já criou ou pode criar um novo grupo de recursos especificamente para este exercício. Se você optar por criar um novo grupo de recursos, isso facilitará a limpeza de todos os recursos criados durante a conclusão do exercício. Se você não tiver um grupo de recursos existente ou quiser criar um novo especificamente para este exercício, siga as etapas em Usar o portal do Azure e o Azure Resource Manager para gerenciar grupos de recursos para criar um grupo de recursos usando o portal do Azure ou siga as etapas em Gerenciar grupos de recursos do Azure usando a CLI do Azure para criar um grupo de recursos usando a CLI do Azure.

Criar uma VM do Linux com o Azure PowerShell

Veja como criar uma VM do Azure com o Azure PowerShell:

  1. Use o cmdlet New-AzVM para criar a VM.

    • Especifique o grupo de recursos para sua VM.
    • Nomeie a VM seguindo os padrões de nomenclatura da sua organização.
    • Escolha um local próximo a você na lista de regiões disponíveis do Azure.
    • 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   = 'myResourceGroupName'
        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
    

    Substitua myResourceGroupName no exemplo anterior pelo nome de um grupo de recursos existente ou pelo nome do grupo de recursos que você criou para este exercício.

    Dica

    Use o botão Copiar para copiar os comandos para a área de transferência. Para colar, 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).

  2. 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.

  3. Aguarde a criação da VM:

    O processo de criação da VM leva alguns minutos para ser concluído.

  4. 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 myResourceGroupName
    
  5. Exibir informações sobre a VM:

    Para exibir informações sobre a VM, exiba o conteúdo da variável.

    $vm
    

    Saída de exemplo:

    ResourceGroupName : myResourceGroupName
    Id                : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/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}
    ...
    
  6. Inspecione as propriedades da VM:

    Inspecione objetos complexos por meio do operador de acesso de membro (.). Por exemplo, para ver as propriedades no VMSize objeto associado à seção HardwareProfile , execute o seguinte comando:

    $vm.HardwareProfile
    

    Ou, para obter informações sobre um dos discos, execute o seguinte comando:

    $vm.StorageProfile.OsDisk
    
  7. Obter os tamanhos de VM disponíveis:

    Passe o objeto de VM para outros cmdlets para obter os tamanhos disponíveis:

    $vm | Get-AzVMSize
    
  8. 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 myResourceGroupName -Name testvm-eus-01
    
  9. 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 exit.

Excluir uma VM

Para experimentar mais comandos, vamos excluir a VM. Siga estas etapas:

  1. Desligue a VM:

    Execute o seguinte comando:

    Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
    

    Insira Y e pressione Enter quando solicitado a continuar.

  2. 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.

  3. 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 para Select-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       myResourceGroupName
    testvm-eus-01           Microsoft.Network/virtualNetworks       myResourceGroupName
    testvm-eus-01           Microsoft.Network/publicIPAddresses     myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkSecurityGroups myResourceGroupName
    testvm-eus-01           Microsoft.Network/networkInterfaces     myResourceGroupName
    testvm-eus-01_OsDisk_1  Microsoft.Compute/disks                 myResourceGroupName
    

    O comando Remove-AzVM exclui apenas a VM. Ele não limpa nenhum outro recurso. Para limpá-los manualmente, siga estas etapas:

  4. Exclua o adaptador de rede:

    Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name |
        Remove-AzNetworkInterface
    

    Insira Y e pressione Enter quando solicitado a continuar.

  5. Exclua o grupo de segurança de rede:

    Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzNetworkSecurityGroup
    

    Insira Y e pressione Enter quando solicitado a continuar.

  6. Excluir o endereço IP público:

    Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzPublicIpAddress
    

    Insira Y e pressione Enter quando solicitado a continuar.

  7. Excluir a rede virtual:

    Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName |
        Remove-AzVirtualNetwork
    

    Insira Y e pressione Enter quando solicitado a continuar.

  8. 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.

  9. 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.