Como automatizar a criação de máquinas virtuais para laboratório utilizando um script de Windows Powershell

Criar máquinas virtuais para laboratórios sempre foi uma tarefa bem árdua, se for um laboratório que necessita criar várias máquinas virtuais, o tempo de criação e configuração do laboratório pode demorar muito tempo. Para montar um laboratório temos que configurar em cada máquina virtual sua rede virtual, criar o VHDX, instalar o sistema operacional, atualizar o sistema operacional, alterar as configurações da máquina virtual para os parâmetros que você necessita. Como isso se perde muito tempo em uma tarefa, além do grande espaço em disco que é utilizado na criação das máquinas virtuais utilizando o método tradicional de criação de discos VHDX de tamanho fixo ou expansão dinâmica.
Com alguns poucos comandos e parâmetros é possível automatizar o processo de criação de uma máquina virtual utilizando o Windows Powershell, podemos configurar várias máquinas virtuais em segundos, utilizando pouco espaço em disco de um VHDX do tipo diferenciação, aonde um disco está associado, em uma relação pai-filho, todas as alterações são feitas no disco filho, deixando o disco pai intacto.
Explicando o script
Para começar a automatizar a criação de máquinas virtuais, primeiro devemos fazer o download do script aqui, após o download do script vamos entender a sua estrutura de criação.
Abra o Windows Powershell SE como Administrador, em seguida abra o script clicando no Menu Arquivo em seguida Abrir.

 

Agora vamos a análise do script, devemos focar somente em duas partes do script.

Parte 1
Locais aonde encontra-se os arquivos TXT que contem os locais aonde serão armazenados as máquinas virtuais e aonde também estão localizados os VHDX modelos que serão utilizado como base para criação das máquinas virtuais.

$caminhovm = Get-Content “D:Maquinas Virtuaiscaminho-vms.txt”

Está linha do script informamos o local aonde encontra-se o arquivo TXT que contém o local aonde queremos armazenar as máquinas virtuais que serão criadas.
Dentro do arquivo TXT escreva o caminho que deseja utilizar para armazenamento das máquinas virtuais que serão criadas.
Exemplo: Vou armazenar o arquivo TXT no caminho D:Maquinas Virtuais, aonde esse arquivo TXT contém escrito em sua primeira linha o caminho aonde serão armazenados as máquinas virtuais que serão criadas.
Então escrevo no arquivo caminho-vms.txt o local de armazenamento das máquinas virtuais, neste exemplo será C:Hyper-V-LAB. Salve o arquivo TXT após a alteração.
Observação: Essa pasta já deve estar criada no C:.


 

 

 

 $caminhomodelo = Get-Content “D:Maquinas Virtuaiscaminho-modelo.txt”

Agora está linha do script informamos o local aonde contém o arquivo TXT que contém o local aonde estão armazenados os VHDX modelos para criação das máquinas virtuais.
Exemplo: Vou armazenar o arquivo TXT no caminho D:Maquinas Virtuais, aonde esse arquivo TXT contém escrito em sua primeira linha o caminho aonde serão armazenados os arquivos VHDX modelos para criação das máquinas virtuais.
Então escrevo no arquivo caminho-modelo.txt o local de armazenamento dos arquivos VHDX modelos, neste exemplo será C:Modelos VHDX. Salve o arquivo TXT após a alteração.
Observação: Essa pasta já deve estar criada no C:.

Pronto já temos configurado a primeira parte do script. Fique tranquilo com relação a criação do VHDX modelo, será demostrado no vídeo como criar um VHDX modelo.

Parte 2

Agora temos que atentar para a linha aonde contém o comando da criação da máquina virtual, será nesta linha que configuramos os parâmetros para criação da máquina virtual.

New-VM -Path $caminhovm -VHDPath “$caminhovm$nomedavm$nomedavm.vhdx” -Generation 2 -MemoryStartupBytes 1Gb -Name $nomedavm -SwitchName $comboBox1.Text | Set-VMMemory -DynamicMemoryEnabled $false Get-VM $nomedavm | Set-VMProcessor -count 2


O comando New-VM cria máquina virtual.
Já o parâmetro -Generation especifica qual será a geração da máquina virtual, escolha entre a geração 1 ou 2.

Observações: Após a criação da máquina virtual sendo ela geração 1 ou 2 não é possível alterar a sua geração.
Máquinas virtuais geração 2 não podem executar alguns sistemas operacionais convidados, como os seguintes:

  • Windows Server 2008 R2
  • Windows Server 2008
  • Windows 7
  • Todos os sistemas operacionais de 32 bits

O parâmetro -MemoryStartupBytes especifica a quantidade de memória, em bytes, a ser atribuída à máquina virtual.
No script já está configurado para a máquina virtual ter 1GB de memória atribuída. Altere do jeito que você necessitar.

Set-VMMemory -DynamicMemoryEnabled $false esse parâmetro especifica se devemos utilizar ou não memória dinâmica.

Se alterarmos o parâmetro de $false para $true temos que especificar qual será a quantidade mínima e máxima de memória dinâmica.

 Exemplo: Habilitar a memória dinâmica, colocando o máximo de 2GB e o mínimo de 512MB.
Set-VMMemory -DynamicMemoryEnabled $True -MaximumBytes 2GB -MinimumBytes 512MB

Observação: Caso for utilizar Nested Virtualization (Virtualização Aninhada) no Hyper-V deixe o parâmetro Set-VMMemory -DynamicMemoryEnabled como $false.
Para saber mais sobre Nested Virtualization (Virtualização Aninhada) acesse aqui para acessar o artigo do meu amigo Vinicius Mozart, aonde ele ensina como habilitar este recurso.

Agora vamos ao último parâmetro que é Set-VMProcessor -count podemos alterar o número de processadores virtuais que vamos utilizar em nossa máquina virtual.
Exemplo: A máquina virtual vai utilizar apenas 1 processador virtual, alteramos o parâmetro -count de 2 para 1 o comando vai ficar assim Set-VMProcessor -count 1.

 

Vídeo

 

 

Agora que você já aprendeu como funciona o script, vamos ao vídeo aonde demostro como criar o VHDX modelo para criação da máquina virtual e também a execução do script.

Inscreva-se no meu canal do Youtube também, já chegamos a marca de 487 inscritos!

Mais uma vez o meu muito obrigado!

    Deixe uma resposta

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    © 2019 All Rights Reserved. Cooperati.