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, onde 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 onde encontra-se os arquivos TXT que contém os locais onde serão armazenadas as máquinas virtuais e onde também estão localizados os VHDX modelos que serão utilizados como base para criação das máquinas virtuais.
$caminhovm = Get-Content “D:\Maquinas Virtuaiscaminho-vms.txt”
Está linha do script informamos o local onde encontra-se o arquivo TXT que contém o local onde 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 onde serão armazenadas 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 onde contém o arquivo TXT que contém o local onde 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 onde 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.
Agora temos que atentar para a linha onde 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, onde 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 onde demostro como criar o VHDX modelo para criação da máquina virtual e a execução do script.
Inscreva-se no meu canal do YouTube ative o sininho para receber as notificações!
Há 10 anos atuo na área de TI focado em suporte e administração de infraestrutura, especializado em plataformas Microsoft. Tenho grande experiência em troubleshooting, implantação, configuração e administração de funções e recursos de tecnologia Microsoft. Formado em Redes de Computadores pela faculdade Estácio de Sá de Belo Horizonte.
Comecei a compartilhar o meu conhecimento no ano de 2012, fazendo artigos e vídeos para o meu Blog. Em 2017 comecei a escrever artigos para o portal Cooperati, em 2020 fui premiado como Microsoft MVP, na categoria Cloud and Datacenter Management.
Sou apaixonado em compartilhar o meu conhecimento. Meu lema é: O conhecimento só é válido quando compartilhado.
Meu amigo, boa tarde, tudo bem?
trabalho em uma empresa onde possuímos um parque grande de VMs !VMware, diariamente recebemos solicitações para criação de máquinas, você teria algum video explicando como automatizar a criação de máquinas na VMware?
Boa noite. Muito obrigado por prestigiar o nosso trabalho, infelizmente não tenho nenhum vídeo demostrando este processo de criação no VMware.
[…] Já demostrei no Cooperati, como automatizar a criação de máquinas virtuais para laboratório utilizando o Powershell. Recomendo a leitura deste artigo, link aqui. […]