Un post-processor transforme ou publie l’artefact produit par le builder, après l’exécution des provisioners — compression, génération de métadonnées, tag, upload vers un registre.


Post-processors courants

Post-processorRôle
manifestÉcrit un fichier JSON listant les artefacts produits (ID d’image, région/projet, timestamp) — utile pour que la CI récupère l’ID de l’image buildée
compressCompresse l’artefact (ex. image qcow2)
docker-tag / docker-pushTague et pousse une image Docker vers un registre
checksumCalcule un checksum de l’artefact
vagrantEmpaquette l’artefact en box Vagrant

Exemple — récupérer l’ID de l’image en CI

build {
  sources = ["source.googlecompute.app"]
 
  provisioner "shell" {
    script = "scripts/install-app.sh"
  }
 
  post-processor "manifest" {
    output = "manifest.json"
  }
}
packer build -var-file=vars.pkrvars.hcl .
IMAGE_NAME=$(jq -r '.builds[-1].artifact_id' manifest.json)

La CI lit manifest.json après le build pour connaître précisément l’image publiée et déclencher la suite du pipeline (tests, promotion, terraform apply avec cette image).


En relation avec