Skip to content

lucaslehnen/packer-esxi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Imagem do ESXi para o Qemu/libvirt construída com o Packer

Packer QEmu QEmu wakatime

O artefato resultante deste template Packer é uma imagem no formato qcow2, que pode ser utilizada no libvirt/Qemu posteriormente. Utilizar o ESXi em um ambiente virtualizado não é recomendado para produção, mas pode auxiliar no caso de laboratórios.

Construí inicialmente este código para o projeto do meu laboratório pessoal.

O que ele faz

Basicamente, a configuração do ESXi está no arquivo de "kickstart", o ks.cfg. Informações de como personalizar o mesmo estão neste link da página da VMWare.

O Packer usa o builder oficial do Qemu para provisionar uma máquina temporária a partir da imagem oficial do ESXi informada. A partir daí, ele instancia um servidor http para prover o arquivo de kickstart e envia teclas para a instância, realizando a instalação sem a necessidade de intervenção manual.

O que ele não faz

  • Provisionamento do ESXi: Para isso, pode ser utilizado o libvirt, com ou sem o Terraform.

Pré-requisitos

  • Packer
  • Qemu
  • Imagem do ESXi

No momento de construção do template, o plugin do Packer não tinha a possibilidade de conectar remotamente no Qemu, então é esperado que o template seja construído a partir da máquina com o Qemu.

A máquina com o Qemu está com uma rede bridge, o que permitiu a configuração do Packer para utilizá-la. Em meu ambiente, utilizei o Debian. Para instalar o Qemu e a rede bridge, utilizei a collection do Ansible que eu havia criado neste link.

Como utilizar

Dentro da máquina com o Qemu:

Clone este repositório:

git clone https://github.com/lucaslehnen/packer-esxi-qemu.git

Configure as variáveis:

pkr_iso_url =  # url da ISO de instalação do ESXi
pkr_iso_checksum = # Checksum da iso
pkr_output_disk = # Nome do disco/artefato a ser gerado
pkr_cpu =  # qtd de vCPU's a serem utilizadas durante o build
pkr_mem = # Qtd de ram a ser utilizada no build
pkr_id = # Ip a ser configurado na máquina
pkr_gateway = # Gateway a ser configurado
pkr_netmask = # Netmask
pkr_nameserver = # Nameserver
pkr_net_bridge = # Nome da interface de rede bridge ("br0", "virbr0", etc)

Veja a documentação sobre as variáveis para ver como inseri-las.

Faça o build:

packer build packer.pkr.hcl

Se quiser acompanhar a execução, ou fazer um troubleshoting, deixei o VNC configurado, portanto podes usar um VNC Viewer por exemplo.

Ao final, o arquivo de imagem estará em build/esxi7U3.qcow2.

Contribuindo

Este template foi construído para um caso de uso apenas, mas se você for utilizar este template e precisar de algo a mais, fique a vontade para fazer um fork e abrir pr. Contribuições são sempre bem vindas.

Fontes / Links úteis:

About

Template Packer para instalação do ESXi

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages