INTRODUÇÃO
Iniciando aos poucos nosso trabalho de IaC aqui no site, vamos para mais um post.
Hoje o post é sobre packer, um empacotador que tem o objetivo de criar imagens de VMs idênticas para várias plataformas (Azure, AWS, VMware, etc) a partir de um único modelo de origem.
Sabendo do objetivo da ferramenta, podemos imaginar várias possibilidades. É possível padronizar modelos de VMs e disponibilizar modelos para um provisionador como o VMware vRealize Automation, Cloud provider ou Terraform. No entanto, você ainda contunuará corrigindo falhas ou certos aspectos que o seu ambiente exige, faz parte do jogo.
VOLTANDO NO TEMPO

Você deve lembrar dos processos para criar uma VM no VMware vSphere. Digamos o Windows Server 2016, 2019 ou 2022, costumava ser o seguinte:
- Download da ISO;
- Seleção do sistema operacional convidado;
- Criar VM;
- Escolher adaptador de armazenamento para ParaVirtual SCSI;
- Escolher adaptador de rede para vmxnet3;
- Anexar arquivo ISO do Windows;
- Escolher host ou cluster para receber a VM;
- Escolher datastore ou cluster de datastore para armazenar a VM;
- Selecionar arquivo do VM Customization Specifications;
- Desanexar o ISO do Windows;
- Instalar ou atualizar o VMware tools;
- Execute o Windows Update uma ou mais vezes até que não haja mais atualizações para instalar;
- Desligue a VM;
- Converta-o em um modelo;
Estas são algumas atividades obrigatórias. Todo administardor VMware sabe usar o Customization Specifications, portanto a lista poderia ser maior sem ele.
INFORMAÇÕES
Ates de comerçarmos, fique sabendo que existem duas abordagens para automatizar a criação de modelos no VMware vSphere, são elas:
Provedor VMware-iso. Este provedor cria VMs VMware a partir de um arquivo ISO como origem.
Provedor vSphere-iso. Esse provedor, criado originalmente pela JetBrains, integrado ao repositório oficial do Packer e lançado com o Packer desde a versão 1.5.2, constrói VMs no VMware vSphere diretamente usando a API do vSphere.
Qual iremos usar neste post? Provedor vSphere-iso! Dito isso vamos lá!
REQUISITOS
vCenter: Verifique a versão do seu vCenter, deve ser no mínimo a 6.5.
Instale o packer : https://learn.hashicorp.com/tutorials/packer/get-started-install-cli
Baixe a versão do SO que iremos trabalhar neste post: https://yum.oracle.com/oracle-linux-isos.html
ESTRUTURA DO CÓDIGO

Iremos trabalhar somente com arquivos HCL que é a motivação deste post e que o fabricante adotou como padrão recentemente.
Temos três arquivos, o priemeiro deles você pode ver agora, um arquivo de variável: vsphere_segredo.pkrvars.hcl. Observação de um leitor do blog. Esconder as senhas. Teremos um próximo post falando sobre vault. Aguardem 🙂

Este arquivo contém um usuário administrador do ambiente vSphere e outro usuário que será criado usando o arquivo kickstart.cfg que iremos falar mais para frente.
O segundo arquivo de variável chamado: vsphere.pkrvars.hcl.



Contém todas as variáveis disponíveis para uma criação de uma VM. No entanto, habilitei somente as mais usadas e com relação com performance.
E por fim o ultimo arquivo, o que contém o build, o OracleLinux-7.9.pkr.hcl. Irei colocar apenas as imagens mais relevantes com as explicações.

A imagem acima contém a parte do código com a estutura das variáveis e seu tipo.

Outra parte do código, a mais importante porque a partir desta fase o seu sistema operacional recebe instruções necessárias para o seu funcionamento. Destaque para a configuração do Floppy e do boot_command.
Parte final do código.

Aqui você pode executar comandos diversos ou se quiser chamar scripts, já com o SO instalado. Criei um exemplo chamado “echo Acesse meu blog https://virtualizandoaju.com/ 🙂“
Agora partimos para a fase final, da execução. Preparar o arquivo de reposta da Red Hat kickstart.cfg. Consulte a documentação oficial caso você nunca tenha usado. Você pode ver uma parte do código abaixo:

É um arquivio de reposta. Nele tenho todas as configurações necessárias para a instalação do SO e configurações pós instalação. Muito importante que este aquivo seja bem configurado.
EXECUÇÃO
Chegou a hora de executar o comando: packer build -var-file .\vsphere_segredo.pkrvars.hcl -var-file .\vsphere.pkrvars.hcl .\OracleLinux-7.9.pkr.hcl




CONCLUSÃO
É isso pessoal! Obrigado por prestegiar o meu trabalho. Meu código completo está disponível no github.
“Uma das melhores opções para avançar, se proteger e progredir na vida é tornar-se um autodidata. Pense nisto!”