Packer
post-processors block
This topic provides reference information about the post-processors
block.
Description
Add a post-processors
block to your build
block to include a list of post-processor configurations. Packer runs the post-processors for an artifact after each build.
# builds.pkr.hcl
build {
# ...
post-processors {
post-processor "shell-local" { # create an artifice.txt file containing "hello"
inline = [ "echo hello > artifice.txt" ]
}
post-processor "artifice" { # tell packer this is now the new artifact
files = ["artifice.txt"]
}
post-processor "checksum" { # checksum artifice.txt
checksum_types = [ "md5", "sha512" ] # checksum the artifact
keep_input_artifact = true # keep the artifact
}
}
}
The post-processor
block
allows to define multiple post-processors that will run from the Artifact
of
each build. Read the post-processor
documentation to know how to use a
post-processor.
Difference between a post-processor
and a post-processors
block
These two templates are doing the same thing:
# builds.pkr.hcl
build {
# ... build image
post-processor "checksum" { # checksum image
checksum_types = [ "md5", "sha512" ] # checksum the artifact
}
post-processor "amazon-import" { # upload image to AWS
}
post-processor "googlecompute-import" { # upload image to GCP
}
}
# builds.pkr.hcl
build {
# ... build image
post-processors {
post-processor "checksum" { # checksum image
checksum_types = [ "md5", "sha512" ] # checksum the artifact
}
}
post-processors {
post-processor "amazon-import" { # upload image to AWS
}
}
post-processors {
post-processor "googlecompute-import" { # upload image to GCP
}
}
}
Each of these post-processors
will start after each build -- that is, after
each provision step has run on each source --. In all cases the source image is
going to be deleted.