Skip to content

Packer

Installation

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install packer

Installation des plugins

packer plugins install github.com/hashicorp/proxmox

Commandes de Base

Convertir un fichier JSON en format Packer HCL

packer hcl2_upgrade -with-annotations <file>.json

Initialiser un fichier Packer

packer init <file>.pkr.hcl

Lancer la construction du template

packer build <file>.pkr.hcl

Lancer la construction du template avec des variables

packer build -var-file=<file>.pkr.vars.hcl <file>.pkr.hcl

Lancer Packer avec une verbosité plus importante sur les logs

PACKER_LOG=1 packer build -var-file=<file>.pkr.vars.hcl <file>.pkr.hcl

Ajouter des variables Ă  partir de la ligne de commande

packer build -var 'var_name=value' -var 'another_var_name=value' <file>.pkr.hcl
Cela permet de passer rapidement des variables sans avoir besoin de créer un fichier de variables séparé.

Déboguer avec des logs détaillés

PACKER_LOG=1 PACKER_LOG_PATH="packer.log" packer build -var-file=<file>.pkr.vars.hcl <file>.pkr.hcl
Cela enregistre les logs détaillés dans un fichier packer.log pour une analyse plus facile.

Vérifier la syntaxe HCL

packer hcl2_upgrade -check-syntax <file>.json
Utile pour s'assurer que votre HCL est correctement formaté avant de commencer le processus de build.

Gestion des Droits Utilisateur sur Proxmox

Définir les droits sur le rôle de l'utilisateur limité à la gestion des templates

pveum role add Packer -privs "Datastore.Allocate Datastore.AllocateSpace Datastore.Audit Pool.Allocate Sys.Audit Sys.Console Sys.Modify VM.Allocate VM.Audit VM.Clone VM.Config.CDROM VM.Config.Cloudinit VM.Config.CPU VM.Config.Disk VM.Config.HWType VM.Config.Memory VM.Config.Network VM.Config.Options VM.Console VM.Migrate VM.Monitor VM.PowerMgmt SDN.Use"

Ajouter un utilisateur

pveum user add <USER>@pve --password <PASSWORD>

Attribution du path

pveum aclmod / -user <USER>@pve -role Packer

Génération du token

pveum user token add <USER>@pve packer -expire 0 -privsep 0 -comment "Packer token"