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. Sabe 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 Experimentar 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, várias opções estão disponíveis, como imagem do sistema operacional, configuração de rede e 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.

Use o comando Get-AzVMImagePublisher para retornar uma lista de editores de imagem:

Get-AzVMImagePublisher -Location "EastUS"

Use o Get-AzVMImageOffer para retornar uma lista de ofertas de imagem. 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 editor e oferecerá o nome para retornar uma lista de nomes de imagem.

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. Você pode exibir detalhes de trabalhos 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 usando um tamanho de VM apropriado 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.

Type Tamanhos comuns Description
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 em uma região específica, use 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 desejado está disponível no cluster de VM atual. O comando Get-AzVMSize retorna 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, ela é reinicializada 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 desejado não estiver disponível no cluster atual, a VM precisará ser desalocada antes que a operação de redimensionamento possa 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 Description
A iniciar A máquina virtual está sendo iniciada.
Em Execução A máquina virtual está em execução.
A parar A máquina virtual está sendo interrompida.
Parado 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á sendo deslocalizada.
Desalocada Indica que a VM foi removida do hipervisor, mas ainda está disponível no plano de controle. 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, use 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 recuperar o estado de energia de todas as VMs em sua assinatura, use a API Máquinas Virtuais - Listar Todas as APIs com status de parâmetro definido como true.

Tarefas de gestão

Durante o ciclo de vida de uma VM, convém executar tarefas de gerenciamento, como iniciar, parar ou excluir 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 desaaloque 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"

Excluindo recursos de VM

Você pode excluir uma VM, mas, por padrão, isso exclui apenas o recurso da VM, não os discos e recursos de rede que a VM usa. Você pode alterar o comportamento padrão para excluir outros recursos ao excluir a VM. Para obter mais informações, consulte Excluir uma VM e recursos anexados.

Próximos passos

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.