Tutorial: Criar e gerir VMs do Windows com o Azure PowerShell

Aplica-se a: ✔️ VMs do Windows

As máquinas virtuais do Azure proporcionam um ambiente informático totalmente configurável e flexível. Este tutorial abrange tarefas de implementação básicas de máquinas virtuais (VM) do Azure, como selecionar um tamanho de VM, selecionar uma imagem de VM e implementar uma VM. Saiba como:

  • Criar e ligar a uma VM
  • Selecionar e utilizar imagens de VM
  • Ver e utilizar tamanhos específicos de VM
  • Redimensionar uma VM
  • Visualizar e compreender o estado de uma VM

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e prima Enter para executá-lo.

Criar grupo de recursos

Crie um grupo de recursos com o comando New-AzResourceGroup .

Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos. Um grupo de recursos tem de ser criado antes de uma máquina virtual. No exemplo seguinte, é criado um grupo de recursos designado myResourceGroupVM na região EastUS:

New-AzResourceGroup `
   -ResourceGroupName "myResourceGroupVM" `
   -Location "EastUS"

O grupo de recursos é especificado ao criar ou modificar uma VM, o que pode ser visto ao longo deste tutorial.

Criar uma VM

Ao criar uma VM, estão disponíveis várias opções, como a imagem do sistema operativo, a configuração de rede e as credenciais administrativas. Este exemplo cria uma VM denominada myVM, que executa a versão predefinida do Windows Server 2016 Datacenter.

Defina o nome de utilizador e a palavra-passe necessários para a conta de administrador na VM com Get-Credential:

$cred = Get-Credential

Crie a VM com New-AzVM.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

Ligar à VM

Depois de a implementação estar concluída, crie uma ligação de ambiente de trabalho remoto à VM.

Execute os seguintes comandos para devolver o endereço IP público da VM. Tome nota deste endereço IP, para que se possa ligar ao mesmo com o seu browser e testar a conectividade Web num passo posterior.

Get-AzPublicIpAddress `
   -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

Utilize o seguinte comando no computador local para criar uma sessão de ambiente de trabalho remoto com a VM. Substitua o endereço IP pelo publicIPAddress da VM. Quando lhe for pedido, introduza as credenciais utilizadas ao criar a VM.

mstsc /v:<publicIpAddress>

Na janela Segurança do Windows, selecione Mais escolhas e Utilizar uma conta diferente. Escreva o nome de utilizador e a palavra-passe que criou para a VM e clique em OK.

Compreender as imagens do Marketplace

O Azure Marketplace inclui várias imagens que podem ser utilizadas para criar uma VM nova. Nos passos anteriores, foi criada uma VM com uma imagem do Windows Server 2016 Datacenter. Neste passo, o módulo do PowerShell serve para pesquisar outras imagens do Windows no marketplace, que pode também ser utilizado como base para novas VMs. Este processo consiste em encontrar o publicador, a oferta, o SKU e, opcionalmente, um número de versão para identificar a imagem.

Utilize o comando Get-AzVMImagePublisher para devolver uma lista de publicadores de imagens:

Get-AzVMImagePublisher -Location "EastUS"

Utilize Get-AzVMImageOffer para devolver uma lista de ofertas de imagens. Com este comando, a lista devolvida é filtrada no publicador especificado, denominado MicrosoftWindowsServer:

Get-AzVMImageOffer `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer"

Os resultados serão semelhantes a este exemplo:

Offer             PublisherName          Location
-----             -------------          --------
Windows-HUB       MicrosoftWindowsServer EastUS
WindowsServer     MicrosoftWindowsServer EastUS
WindowsServer-HUB MicrosoftWindowsServer EastUS

O comando Get-AzVMImageSku filtrará o publicador e o nome da oferta para devolver uma lista de nomes de imagens.

Get-AzVMImageSku `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer" `
   -Offer "WindowsServer"

Os resultados serão semelhantes a este exemplo:

Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

Estas informações podem ser utilizadas para implementar uma VM com uma imagem específica. Este exemplo implementa uma VM com a versão mais recente de uma imagem de Contentores do Windows Server 2016.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

O parâmetro -AsJob cria a VM como uma tarefa em segundo plano, para que os pedidos do PowerShell voltem para si. Pode ver detalhes das tarefas em segundo plano com o cmdlet Get-Job .

Compreender os tamanhos de VM

O tamanho da VM determina a quantidade de recursos de computação, como CPU, GPU e memória que são disponibilizados para a VM. As máquinas virtuais devem ser criadas com um tamanho de VM adequado para a carga de trabalho. Se a carga de trabalho aumentar, uma máquina virtual existente também pode ser redimensionada.

Tamanhos de VMs

A tabela seguinte categoriza tamanhos em casos de utilização.

Tipo Tamanhos comuns Descrição
Fins gerais B, Dsv3, Dv3, DSv2, Dv2, Av2, DC CPU para memória equilibrada. Ideal para desenvolvimento/teste e aplicações e soluções de dados pequenas a médias.
Com otimização de computação Fsv2 CPU para memória elevada. É adequado para aplicações de tráfego médio, dispositivos de rede e processos em lote.
Com otimização de memória Esv3, Ev3, M, DSv2, Dv2 Memória-para-núcleo elevada. É ideal para bases de dados relacionais, caches médias a grandes e análise dentro da memória.
Com otimização de armazenamento Lsv2, Ls Débito e E/S de disco elevados. Ideal para bases de dados de Macrodados, SQL e NoSQL.
GPU NV, NVv2, NC, NCv2, NCv3, ND VMs especializadas destinadas a composição gráfica e edição de vídeo exigentes.
Elevado desempenho H As nossas mais avançadas VMs com CPU, com interfaces de rede de alto débito (RDMA) opcionais.

Localizar todos os tamanhos de VM disponíveis

Para ver uma lista de tamanhos de VM disponíveis numa determinada região, utilize o comando Get-AzVMSize .

Get-AzVMSize -Location "EastUS"

Redimensionar uma VM

Depois de implementar uma VM, esta pode ser redimensionada para aumentar ou diminuir a alocação de recursos.

Antes de redimensionar uma VM, verifique se o tamanho que pretende está disponível no cluster de VMs atual. O comando Get-AzVMSize devolve uma lista de tamanhos.

Get-AzVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

Se o tamanho estiver disponível, a VM pode ser redimensionada a partir de um estado ligado, no entanto, é reiniciada durante a operação.

$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_DS3_v2"
Update-AzVM `
   -VM $vm `
   -ResourceGroupName "myResourceGroupVM"

Se o tamanho que pretende não estiver disponível no cluster atual, a VM tem de ser desalocada antes de a operação de redimensionamento poder ocorrer. Desalocar a VM remove os dados no disco temporário e o endereço IP público é alterado, a menos que esteja a ser utilizado um endereço IP estático.

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force
$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_E2s_v3"
Update-AzVM -VM $vm `
   -ResourceGroupName "myResourceGroupVM"
Start-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -Name $vm.name

Estados de energia da VM

Uma VM do Azure pode ter um de vários estados de energia.

Estado de Energia Descrição
A iniciar A máquina virtual está a ser iniciada.
Em Execução A máquina virtual está em execução.
A parar A máquina virtual está a ser parada.
Parada A VM está parada. As máquinas virtuais no estado de paragem continuam a incorrer em custos de computação.
A desalocar A VM está a ser desalocada.
Desalocada Indica que a VM foi removida do hipervisor, mas ainda está disponível no plano de controlo. As máquinas virtuais no estado Deallocated não incorrem em custos de computação.
- O estado de energia da VM é desconhecido.

Para obter o estado de uma VM específica, utilize o comando Get-AzVM . Certifique-se de que especifica um nome válido para uma VM e um grupo de recursos.

Get-AzVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

A saída terá um aspeto semelhante a este exemplo:

Status
------
PowerState/running

Para obter o estado de energia de todas as VMs na sua subscrição, utilize a Máquinas Virtuais – Listar Toda a API com o estado do parâmetro Definido como verdadeiro.

Tarefas de gestão

Durante o ciclo de vida de uma VM, poderá querer executar tarefas de gestão como iniciar, parar ou eliminar uma VM. Além disso, pode querer criar scripts para automatizar tarefas repetitivas ou complexas. Ao utilizar o Azure PowerShell, muitas tarefas comuns de gestão podem ser executadas na linha de comandos ou em scripts.

Parar uma VM

Pare e desaloque uma VM com Stop-AzVM:

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force

Se pretender manter a VM no estado aprovisionado, utilize o parâmetro -StayProvisioned.

Iniciar uma VM

Start-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM"

Eliminar recursos de VM

Pode eliminar uma VM, mas, por predefinição, apenas elimina o recurso da VM, não os discos e os recursos de rede que a VM utiliza. Pode alterar o comportamento predefinido para eliminar outros recursos quando eliminar a VM. Para obter mais informações, veja Eliminar uma VM e recursos anexados.

Passos seguintes

Neste tutorial, aprendeu sobre a criação e gestão básica de VMs, como:

  • Criar e ligar a uma VM
  • Selecionar e utilizar imagens de VM
  • Ver e utilizar tamanhos específicos de VM
  • Redimensionar uma VM
  • Visualizar e compreender o estado de uma VM

Avance para o próximo tutorial para saber mais sobre os discos de VM.