packer/readme.md

1.6 KiB

What does this stuff do?

Packer is a tool that can create Virtual Machine templates from code.
This repository hosts the code for a customized templates used in Siempie's home environment using the Proxmox Hypervisor.

Template

Inside the template packer does:

  • Install updates
  • Install tools; curl, qemu-guest agent, sudo and wget.
  • Install Ansible user with private key
  • Clean guest (machine-id, logs, package cache, etc)

Other information to know:

  • Template hostname: localhost
  • packer username: packer
  • packer password: packer

More info: https://developer.hashicorp.com/packer/docs/intro

OS VM Name VM ID Script
Ubuntu 24 ubuntu.template.siempie.internal 999 scripts/ubuntu24.sh

Install packer

Install packer on your system:
https://developer.hashicorp.com/packer/tutorials/docker-get-started/get-started-install-cli

Variables

Copy the variables.pkrvars.hcl.example file to variables.pkrvars.hcl and change the variables.

Initialize the project and install the proxmox provider

This will initialize packer and install the required proxmox plugin.

packer init -var-file variables.pkrvars.hcl ubuntu24/packer.pkr.hcl

Customization

Since packer allows either an inline or a script execution there is a script per template. See the table above for the specific location per template.

Usage

Ubuntu 24 Template:

packer build -force -var-file variables.pkrvars.hcl ubuntu24/packer.pkr.hcl

Note: the -force flag removes an already existing VM or Template with the same ID (999).