Baking images with Packer
Packer was released back in 2013 with the goal of simplifying, automating, and codifying the image creation process. It removes all the pain from baking images for different platforms by replacing many manual steps with a single JSON template fed to the CLI. It is written in the Go programming language, just like Terraform. Installing it is a piece of cake--just download the archive for your operating system from https://www.packer.io/downloads.html and extract the binary to a directory available in your $PATH
environment variable. Then, verify your installation:
$> packer -v0.12.0
You are all set up to bake images! To do so, just run packer build my_template.json
. It won't work, of course, because we don't have a template yet. Create the base.json
file and let's start filling it in. Our goal is to bake a CentOS 7 AMI with all packages updated and Puppet installed.
The only required section for the template is the builders array definition. Builders are configuration...