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-processor | Rô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 |
compress | Compresse l’artefact (ex. image qcow2) |
docker-tag / docker-push | Tague et pousse une image Docker vers un registre |
checksum | Calcule un checksum de l’artefact |
vagrant | Empaquette 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
- Anatomie d’un template Packer — où s’insèrent les post-processors dans
build - Provisioners — étape précédente
- Instance Template — consomme l’image dont l’ID est capturé ici