Packer lets us create machine images for a variety of platforms through code. Part of this involves provisioning an initial machine to match our desired state. In this hands-on lab, we use both the `file` and `shell` provisioners to prepare a Packer template for a web instance.
Successfully complete this lab by achieving the following learning objectives:
- Add the File Provisioner(s)
Please give the lab an extra three minutes before starting the lab activity. After that, log in to the provided Ubuntu Workstation server using the credentials provided.
Note: There are multiple ways to complete this lab. We’ll be using two
fileprovisioner blocks objects. You could alternatively upload the entire
filesdirectory in one object and then move all files via script.
Create an object to move the website files to
/var/www/html/bookapp. Place it between the two
Add a second
fileobject to move the Apache configuration to
/etc/apache2requires elevated privileges, we’ll need to move the
/tmp/via shell provisioner.
- Update the Scripts
We’ll need to update both the initial inline
shellprovisioner and the
scriptsprovisioner that follows our
inlinelist to create the
/var/www/htmldirectory and grant
ubuntutemporary ownership of it.
Then, update the
webdeploy.shscript itself to move our
- Test the Build
Return to the
packer.jsonfile and update the variables for access key, secret key, and subnet ID. Save and exit, and then test the build.