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
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"