Baking images with Packer
Packer was released back in 2013 with a goal to simplify, automate, and codify 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 -v 0.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 Builders array definition. Builders are configuration blocks...