📦 Packer templates for building Proxmox KVM images from ISO
- use the latest tagged version which has been tested more thoroughly than 'master'
Debian v10 (buster) Packer Template using Packer Proxmox Builder to build a Proxmox VM image template
Ubuntu 18.04 (bionic) Packer Template using Packer Proxmox Builder to build a Proxmox VM image template
Ubuntu 20.04 (focal) Packer Template using Packer Proxmox Builder to build a Proxmox VM image template
OpenBSD 6 Packer Template using Packer Proxmox Builder to build a Proxmox VM image template
Alpine Linux Packer Template using Packer Proxmox Builder to build a Proxmox VM image template
Alpine Linux Packer Template using QEMU Builder to build a KVM image usable in Openstack or Proxmox
- downloads the ISO and places it in Proxmox
- creates a Proxmox VM
- builds the image with Packer using automated installs
- configures the image with Packer using Ansible
- stores it as a Proxmox Template
- see specific README.md for details about each template
The build script which will run the packer template is configured to run on the Proxmox server. Thus the following pre-requisites should be installed on the Proxmox server:
- Ensure that Proxmox 6 is installed
- Set up a DHCP server on
vmbr1
, for exampleisc-dhcp-server
(see section DHCP in the Proxmox Ansible role).
printf "Proxmox $(pveversion)\n"
- Install Packer on the Proxmox server
apt -y install unzip
packer_ver=1.5.5
wget https://releases.hashicorp.com/packer/${packer_ver}/packer_${packer_ver}_linux_amd64.zip
sudo unzip packer_${packer_ver}_linux_amd64.zip -d /usr/local/bin
packer --version
- Install Ansible on the Proxmox server
apt -y install python3-pip
pip3 install ansible==2.9.7
pip3 install py-bcrypt
- Install j2cli on the Proxmox server
pip3 install j2cli[yaml]
wget https://github.com/chriswayg/packer-proxmox-templates/archive/v1.7.zip && unzip v1.7.zip && cd packer-proxmox-templates-*
On the Proxmox Server with Packer installed:
cd OSname-xy-amd64-proxmox
# for example
cd debian-10-amd64-proxmox
cd ubuntu-18.04-amd64-proxmox
cd openbsd-6-amd64-proxmox
- edit
build.conf
, including the default user and especially the Proxmox URL and the ISO download links for the latest distro version - edit
playbook/server-template-vars.yml
, especially the SSH Key & regional repositories
../build.sh proxmox
- The template creation can be observed in the Proxmox GUI
- Login via SSH using the default username as set in
build.conf
, or login as root via console (if not disabled)
../build.sh (proxmox|debug [new_VM_ID])
proxmox - Build and create a Proxmox VM template
debug - Debug Mode: Build and create a Proxmox VM template
VM_ID - VM ID for new VM template (or use default from build.conf)
Enter Passwords when prompted or provide them via ENV variables:
(use a space in front of ' export' to keep passwords out of bash_history)
export proxmox_password=MyLoginPassword
export ssh_password=MyPasswordInVM
The Packer templates have been tested with the following versions of Packer and Ansible. If you use different versions, some details may need to be updated.
printf "$(lsb_release -d) $(cat /etc/debian_version)\n" && \
printf "Proxmox $(pveversion)\n" &&
packer version && \
ansible --version | sed -n '1p' && \
ansible --version | sed -n '6p' && \
j2 --version
Description: Debian GNU/Linux 10 (buster) 10.3
Proxmox pve-manager/6.1-8/806edfe1 (running kernel: 5.3.18-3-pve)
Packer v1.5.5
ansible 2.9.7
python version = 3.7.3 (default, Dec 20 2019, 18:57:59) [GCC 8.3.0]
j2cli 0.3.10, Jinja2 2.11.2
NOTE: For security reasons it would be preferable to build the Proxmox template images on a local Proxmox staging server (for example in a VM) and then to transfer the Proxmox templates using migration onto the live server(s).
It should also be possible to use Packer remotely and to control VM creation remotely via Ansible. The Packer template and the scripts would have to be modified accordingly. If you have it working remotely, please make a pull request.