Criando um Template VMware Oracle Linux com Packer Usando HCL2

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

Imagem da internet

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

Imagem da internet

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 🙂

vsphere_segredo.pkrvars.hcl

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.

vsphere.pkrvars.hcl
vsphere.pkrvars.hcl.
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.

OracleLinux-7.9.pkr.hcl.

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

OracleLinux-7.9.pkr.hcl

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.

OracleLinux-7.9.pkr.hcl

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:

kickstart.cfg.

É 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

Executando comando.
kickstart.cfg em execução.
Resultado final.
Template criado.

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!”

Izzo Rocha

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.