Tutorial: Criar e gerenciar as VMs do Windows com o Azure PowerShell
Aplica-se a: ✔️ Windows VMs
Máquinas virtuais do Azure fornecem um ambiente de computação totalmente configurável e flexível. 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. Você aprenderá como:
- Criar e conectar-se a uma VM
- Selecionar e usar imagens de VM
- Exibir e usar tamanhos específicos de VM
- Redimensionar uma VM
- Exibir e compreender o estado da VM
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até 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.
Criar grupo de recursos
Crie um grupo de recursos com o comando New-AzResourceGroup.
Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Você deve criar um grupo de recursos antes de criar uma máquina virtual. No exemplo a seguir, um grupo de recursos chamado myResourceGroupVM é criado na região EastUS:
New-AzResourceGroup `
-ResourceGroupName "myResourceGroupVM" `
-Location "EastUS"
O grupo de recursos é especificado ao criar ou modificar uma VM, que pode ser visto durante este tutorial.
Criar uma máquina virtual
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. Este exemplo cria uma VM, denominada myVM, que executa a versão padrão do 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:
$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
Conectar-se a uma VM
Após a implantação, crie uma conexão de área de trabalho remota com a VM.
Execute os comandos a seguir para retornar o endereço IP público da VM. Anote esse endereço IP para se conectar a ele com o navegador para testar a conectividade à Web em uma etapa futura.
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. Substitua o endereço IP pelo publicIPAddress da VM. Quando solicitado, insira as credenciais usadas ao criar a VM.
mstsc /v:<publicIpAddress>
Na janela Segurança do Windows, selecione Mais opções e Usar uma conta diferente. Digite o nome de usuário e a senha que você criou para a VM e clique em OK.
Noções básicas sobre as imagens do Marketplace
O Azure Marketplace inclui muitas imagens que podem ser usadas para criar uma nova VM. Nas etapas anteriores, uma VM foi criada usando a imagem do Windows Server 2016 Datacenter. 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. Este processo consiste em localizar 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 comando Get-AzVMImageOffer para retornar uma lista de ofertas de imagem. Com este comando, a lista retornada é filtrada no editor especificado chamado MicrosoftWindowsServer
:
Get-AzVMImageOffer `
-Location "EastUS" `
-PublisherName "MicrosoftWindowsServer"
Os resultados serão algo parecido com este exemplo:
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.
Get-AzVMImageSku `
-Location "EastUS" `
-PublisherName "MicrosoftWindowsServer" `
-Offer "WindowsServer"
Os resultados serão algo parecido com 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
Essas informações podem ser usadas para implantar uma VM com uma imagem específica. Este exemplo implanta uma VM usando a versão mais recente de um Windows Server 2016 com imagem de contêineres.
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
Entender os tamanhos de VM
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. As máquinas virtuais devem ser criadas usando um tamanho de VM adequado para a carga de trabalho. Se uma carga de trabalho aumentar, uma máquina virtual existente também poderá ser redimensionada.
Tamanhos de VM
A tabela a seguir categoriza tamanhos em casos de uso.
Type | Tamanhos comuns | Descrição |
---|---|---|
Propósito geral | B, Dsv3, Dv3, DSv2, Dv2, Av2, DC | CPU/memória equilibrados. Ideal para desenvolvimento/teste e para aplicativos de pequeno a médio porte e soluções de dados. |
Computação otimizada | Fsv2 | Relação de CPU/memória alta. Boa para aplicativos de tráfego médio, dispositivos de rede e processos em lote. |
Memória otimizada | Esv3, Ev3, M, DSv2, Dv2 | Relação de memória/núcleo alta. Ótima para banco de dados relacionais, caches médios a grandes e análises na memória. |
Armazenamento otimizado | Lsv2, Ls | Alta taxa de transferência de disco e de E/S. Ideal para Big Data, SQL e bancos de dados NoSQL. |
GPU | NV, NVv2, NC, NCv2, NCv3, ND | VMs especializadas, destinadas para renderização gráfica e edição de vídeo pesadas. |
Alto desempenho | H | Nossas VMs de CPU mais potentes com adaptadores de rede de alto rendimento (RDMA) opcionais. |
Encontrar 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
Após a implantação de uma VM, ela 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 da 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 poderá ser redimensionada com base em um estado ligado. No entanto, ela será 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 ocorra. 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.
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 dentre vários estados de energia.
Estado de energia | Descrição |
---|---|
Iniciando | A máquina virtual está sendo iniciada. |
Executando | A máquina virtual está em execução. |
Parando | A máquina virtual está sendo interrompida. |
Parado | A máquina virtual está parada. Máquinas virtuais no estado interrompido ainda incorrerá em encargos de computação. |
Desalocando | A VM está sendo desalocada. |
Desalocada | Indica que a VM é removida do hipervisor, mas ainda está disponível no plano de controle. As máquinas virtuais no estado Deallocated não incorrem em encargos de computação. |
- | O estado de energia da VM é desconhecido. |
Para obter o estado de uma VM específica, use o comando Get-AzVM. Especifique nomes válidos 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 será parecida com este exemplo:
Status
------
PowerState/running
Para recuperar o estado de energia de todas as VMs na sua assinatura, use a API Máquinas Virtuais – Listar Todas com o parâmetro statusOnly definido como true.
Tarefas de gerenciamento
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. Além disso, é possível que você queira criar scripts para automatizar tarefas repetitivas ou complexas. Usando o Azure PowerShell, muitas tarefas comuns de gerenciamento podem ser executadas em linha de comando ou em scripts.
Parar uma VM
Interrompa e desaloque uma VM com 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.
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 de VM, não os discos nem os 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, confira Excluir uma VM e os recursos anexados.
Próximas etapas
Neste tutorial, você aprendeu sobre a criação e o gerenciamento básico de VM e como:
- Criar e conectar-se a uma VM
- Selecionar e usar imagens de VM
- Exibir e usar tamanhos específicos de VM
- Redimensionar uma VM
- Exibir e compreender o estado da VM
Avança para o próximo tutorial para saber mais sobre os discos de VM.