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.

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 [nome do grupo de recursos de área restrita]. Esteja ciente das restrições de localização.

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

  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 <rgn>[sandbox resource group name]</rgn>
    
  5. 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}
    ...
    
  6. Inspecione as propriedades da VM:

    Inspecione objetos complexos por meio do operador de acesso de membro (.). Por exemplo, para visualizar as propriedades no objeto VMSize 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
    
  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 <rgn>[sandbox resource group name]</rgn> -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 saída.

Excluir uma VM

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

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

  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       <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:

  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.