Tutorial: Criar e gerenciar as VMs do Windows com o Azure PowerShellTutorial: Create and Manage Windows VMs with Azure PowerShell

Máquinas virtuais do Azure fornecem um ambiente de computação totalmente configurável e flexível.Azure virtual machines provide a fully configurable and flexible computing environment. Este tutorial aborda itens básicos de tarefas de implantação de VM (máquina virtual) do Azure, como a seleção de um tamanho de VM, a seleção de uma imagem de VM e a implantação de uma VM.This tutorial covers basic Azure virtual machine (VM) deployment tasks like selecting a VM size, selecting a VM image, and deploying a VM. Você aprenderá como:You learn how to:

  • Criar e conectar-se a uma VMCreate and connect to a VM
  • Selecionar e usar imagens de VMSelect and use VM images
  • Exibir e usar tamanhos específicos de VMView and use specific VM sizes
  • Redimensionar uma VMResize a VM
  • Exibir e compreender o estado da VMView and understand VM state

Iniciar o Azure Cloud ShellLaunch Azure Cloud Shell

O Azure Cloud Shell é um shell interativo grátis que pode ser usado para executar as etapas neste artigo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.It has common Azure tools preinstalled and configured to use with your account.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com/powershell.You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. Selecione Copiar para copiar os blocos de código, cole o código no Cloud Shell e depois pressione Enter para executá-lo.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Criar grupo de recursosCreate resource group

Crie um grupo de recursos com o comando New-AzResourceGroup.Create a resource group with the New-AzResourceGroup command.

Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.An Azure resource group is a logical container into which Azure resources are deployed and managed. Você deve criar um grupo de recursos antes de criar uma máquina virtual.A resource group must be created before a virtual machine. No exemplo a seguir, um grupo de recursos chamado myResourceGroupVM é criado na região EastUS:In the following example, a resource group named myResourceGroupVM is created in the EastUS region:

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

O grupo de recursos é especificado ao criar ou modificar uma VM, que pode ser visto durante este tutorial.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

Criar uma máquina virtualCreate a VM

Há várias opções disponíveis ao criar uma VM, como a imagem do sistema operacional, a configuração de rede e as credenciais administrativas.When creating a VM, several options are available like operating system image, network configuration, and administrative credentials. Este exemplo cria uma VM, denominada myVM, que executa a versão padrão do Windows Server 2016 Datacenter.This example creates a VM named myVM, running the default version of Windows Server 2016 Datacenter.

Defina o nome de usuário e a senha necessários para a conta de administrador na VM com Get-Credential:Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

Crie a VM com New-AzVM.Create the VM with New-AzVM.

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

Conectar-se a uma VMConnect to VM

Após a implantação, crie uma conexão de área de trabalho remota com a VM.After the deployment has completed, create a remote desktop connection with the VM.

Execute os comandos a seguir para retornar o endereço IP público da VM.Run the following commands to return the public IP address of the VM. Anote esse endereço IP para se conectar a ele com o navegador para testar a conectividade à Web em uma etapa futura.Take note of this IP Address so you can connect to it with your browser to test web connectivity in a future step.

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

Use o comando a seguir em seu computador local para criar uma sessão remota de área de trabalho com a VM.Use the following command, on your local machine, to create a remote desktop session with the VM. Substitua o endereço IP pelo publicIPAddress da VM.Replace the IP address with the publicIPAddress of your VM. Quando solicitado, insira as credenciais usadas ao criar a VM.When prompted, enter the credentials used when creating the VM.

mstsc /v:<publicIpAddress>

Na janela Segurança do Windows, selecione Mais opções e Usar uma conta diferente.In the Windows Security window, select More choices and then Use a different account. Digite o nome de usuário e a senha que você criou para a VM e clique em OK.Type the username and password you created for the VM and then click OK.

Noções básicas sobre as imagens do MarketplaceUnderstand marketplace images

O Azure Marketplace inclui muitas imagens que podem ser usadas para criar uma nova VM.The Azure marketplace includes many images that can be used to create a new VM. Nas etapas anteriores, uma VM foi criada usando a imagem do Windows Server 2016 Datacenter.In the previous steps, a VM was created using the Windows Server 2016 Datacenter image. Nesta etapa, o módulo do PowerShell é usado para pesquisar no marketplace por outras imagens do Windows, que também pode ser usado como base para novas VMs.In this step, the PowerShell module is used to search the marketplace for other Windows images, which can also be used as a base for new VMs. Este processo consiste em localizar o publicador, a oferta, o SKU e, opcionalmente, um número de versão para identificar a imagem.This process consists of finding the publisher, offer, SKU, and optionally a version number to identify the image.

Use o comando Get-AzVMImagePublisher para retornar uma lista de editores de imagem:Use the Get-AzVMImagePublisher command to return a list of image publishers:

Get-AzVMImagePublisher -Location "EastUS"

Use o comando Get-AzVMImageOffer para retornar uma lista de ofertas de imagem.Use the Get-AzVMImageOffer to return a list of image offers. Com este comando, a lista retornada é filtrada no editor especificado chamado MicrosoftWindowsServer:With this command, the returned list is filtered on the specified publisher named MicrosoftWindowsServer:

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

Os resultados serão algo parecido com este exemplo:The results will look something like this example:

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

O comando Get-AzVMImageSku filtrará o nome do editor e da oferta para retornar uma lista com nomes de imagem.The Get-AzVMImageSku command will then filter on the publisher and offer name to return a list of image names.

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

Os resultados serão algo parecido com este exemplo:The results will look something like this example:

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

Essas informações podem ser usadas para implantar uma VM com uma imagem específica.This information can be used to deploy a VM with a specific image. Este exemplo implanta uma VM usando a versão mais recente de um Windows Server 2016 com imagem de contêineres.This example deploys a VM using the latest version of a Windows Server 2016 with Containers image.

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 prompts do PowerShell sejam exibidos de volta para você.The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. Você pode exibir os detalhes de trabalhos em segundo plano com o cmdelt Get-Job.You can view details of background jobs with the Get-Job cmdlet.

Entender os tamanhos de VMUnderstand VM sizes

O tamanho da VM determina a quantidade de recursos de computação, como memória, CPU e GPU que estão disponíveis para a VM.The VM size determines the amount of compute resources like CPU, GPU, and memory that are made available to the VM. As máquinas virtuais devem ser criadas usando um tamanho de VM adequado para a carga de trabalho.Virtual machines should be created using a VM size appropriate for the workload. Se uma carga de trabalho aumentar, uma máquina virtual existente também poderá ser redimensionada.If a workload increases, an existing virtual machine can also be resized.

Tamanhos de VMVM Sizes

A tabela a seguir categoriza tamanhos em casos de uso.The following table categorizes sizes into use cases.

TypeType Tamanhos comunsCommon sizes DESCRIÇÃODescription
Propósito geralGeneral purpose B, Dsv3, Dv3, DSv2, Dv2, Av2, DCB, Dsv3, Dv3, DSv2, Dv2, Av2, DC CPU/memória equilibrados.Balanced CPU-to-memory. Ideal para desenvolvimento/teste e para aplicativos de pequeno a médio porte e soluções de dados.Ideal for dev / test and small to medium applications and data solutions.
Computação otimizadaCompute optimized Fsv2Fsv2 Relação de CPU/memória alta.High CPU-to-memory. Boa para aplicativos de tráfego médio, dispositivos de rede e processos em lote.Good for medium traffic applications, network appliances, and batch processes.
Memória otimizadaMemory optimized Esv3, Ev3, M, DSv2, Dv2Esv3, Ev3, M, DSv2, Dv2 Relação de memória/núcleo alta.High memory-to-core. Ótima para banco de dados relacionais, caches médios a grandes e análises na memória.Great for relational databases, medium to large caches, and in-memory analytics.
Armazenamento otimizadoStorage optimized Lsv2, LsLsv2, Ls Alta taxa de transferência de disco e de E/S.High disk throughput and IO. Ideal para Big Data, SQL e bancos de dados NoSQL.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NVv2, NC, NCv2, NCv3, NDNV, NVv2, NC, NCv2, NCv3, ND VMs especializadas, destinadas para renderização gráfica e edição de vídeo pesadas.Specialized VMs targeted for heavy graphic rendering and video editing.
Alto desempenhoHigh performance HH Nossas VMs de CPU mais potentes com adaptadores de rede de alto rendimento (RDMA) opcionais.Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

Encontrar tamanhos de VM disponíveisFind available VM sizes

Para ver uma lista de tamanhos de VM disponíveis em uma região específica, use o comando Get-AzVMSize.To see a list of VM sizes available in a particular region, use the Get-AzVMSize command.

Get-AzVMSize -Location "EastUS"

Redimensionar uma VMResize a VM

Após a implantação de uma VM, ela pode ser redimensionada para aumentar ou diminuir a alocação de recursos.After a VM has been deployed, it can be resized to increase or decrease resource allocation.

Antes de redimensionar uma VM, verifique se o tamanho desejado está disponível no cluster da VM atual.Before resizing a VM, check if the size you want is available on the current VM cluster. O comando Get-AzVMSize retorna uma lista de tamanhos.The Get-AzVMSize command returns a list of sizes.

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

Se o tamanho estiver disponível, a VM poderá ser redimensionada com base em um estado ligado. No entanto, ela será reinicializada durante a operação.If the size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation.

$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 ocorra.If the size you want isn't available on the current cluster, the VM needs to be deallocated before the resize operation can occur. Desalocar uma VM removerá todos os dados no disco temporário e alterará o endereço IP público, a menos que um endereço IP estático esteja sendo usado.Deallocating a VM will remove any data on the temp disk, and the public IP address will change unless a static IP address is being used.

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 VMVM power states

Uma VM do Azure pode ter um dentre vários estados de energia.An Azure VM can have one of many power states.

Estado de energiaPower State DESCRIÇÃODescription
IniciandoStarting A máquina virtual está sendo iniciada.The virtual machine is being started.
ExecutandoRunning A máquina virtual está em execução.The virtual machine is running.
ParandoStopping A máquina virtual está sendo interrompida.The virtual machine is being stopped.
ParadoStopped A máquina virtual está parada.The VM is stopped. Máquinas virtuais no estado interrompido ainda incorrerá em encargos de computação.Virtual machines in the stopped state still incur compute charges.
DesalocandoDeallocating A VM está sendo desalocada.The VM is being deallocated.
DesalocadaDeallocated Indica que a VM é removida do hipervisor, mas ainda está disponível no plano de controle.Indicates that the VM is removed from the hypervisor but is still available in the control plane. As máquinas virtuais no estado Deallocated não incorrem em encargos de computação.Virtual machines in the Deallocated state do not incur compute charges.
- O estado de energia da VM é desconhecido.The power state of the VM is unknown.

Para obter o estado de uma VM específica, use o comando Get-AzVM.To get the state of a particular VM, use the Get-AzVM command. Especifique nomes válidos para uma VM e um grupo de recursos.Be sure to specify a valid name for a VM and resource group.

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

A saída será parecida com este exemplo:The output will look something like this example:

Status
------
PowerState/running

Tarefas de gerenciamentoManagement tasks

Durante o ciclo de vida de uma VM, é possível que você queira executar tarefas de gerenciamento, como inicialização, interrupção ou exclusão de uma VM.During the lifecycle of a VM, you may want to run management tasks like starting, stopping, or deleting a VM. Além disso, é possível que você queira criar scripts para automatizar tarefas repetitivas ou complexas.Additionally, you may want to create scripts to automate repetitive or complex tasks. Usando o Azure PowerShell, muitas tarefas comuns de gerenciamento podem ser executadas em linha de comando ou em scripts.Using Azure PowerShell, many common management tasks can be run from the command line or in scripts.

Parar uma VMStop a VM

Interrompa e desaloque uma VM com Stop-AzVM:Stop and deallocate a VM with Stop-AzVM:

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

Se você quiser manter a VM em um estado de provisionamento, use o parâmetro -StayProvisioned.If you want to keep the VM in a provisioned state, use the -StayProvisioned parameter.

Iniciar uma VMStart a VM

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

Excluir grupo de recursosDelete resource group

Tudo dentro de um grupo de recursos é excluído quando você o exclui.Everything inside of a resource group is deleted when you delete the resource group.

Remove-AzResourceGroup `
   -Name "myResourceGroupVM" `
   -Force

Próximas etapasNext steps

Neste tutorial, você aprendeu sobre a criação e o gerenciamento básico de VM e como:In this tutorial, you learned about basic VM creation and management such as how to:

  • Criar e conectar-se a uma VMCreate and connect to a VM
  • Selecionar e usar imagens de VMSelect and use VM images
  • Exibir e usar tamanhos específicos de VMView and use specific VM sizes
  • Redimensionar uma VMResize a VM
  • Exibir e compreender o estado da VMView and understand VM state

Avança para o próximo tutorial para saber mais sobre os discos de VM.Advance to the next tutorial to learn about VM disks.