Packer lets us create machine images for a variety of platforms through code. Part of the image creation process involves provisioning the machine, which can be done with a variety of provisioners, including Salt. All Salt provisioning is done via the `salt-call` command, with Salt run masterless. In this lab, we’ll use Salt and Packer to ensure our website has a working image by using a custom Salt minion config.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Prepare the Formula
- Move to
packer/bookapp
. - Create a
formula
directory and pull in our desired Apache formula. - To use this formula, we need a related
top.sls
file, place to store ourpillar
data, and a pillartop.sls
file. - Create the pillar data. (We can view an example of this on the Apache formula’s GitHub page to see usage before writing our own.)
- Add a related
top.sls
file for the pillar data. - Update the formula top file.
- Review and update the
minion
config.
- Move to
- Update the Template
- Update our
packer.json
file, first by adding our file and pillar roots directories in ourshell
provisioner block; we also want to create our website directory. - Copy over our needed files.
- Add our Salt provisioner, ensuring to use our custom minion config.
- Update our
- Test the Build
- Update the file with the access key, secret key, and subnet ID provided on the hands-on lab page.
- Save and exit the file.
- Test the build.