Provisioning a Packer Image with Ansible

15 minutes
  • 2 Learning Objectives

About this Hands-on Lab

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 Ansible. Oftentimes, you may well be provisioning Packer images for that same Ansible workstation; in this lab, we’ll explore how to use your existing Ansible setup to provision your Packer images.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Add the Provisioner Block

Create a provisioner block using the Ansible provisioner type. Note that the web group should be assigned and the playbook is located at /home/cloud_user/ansible/playbooks/.

Test the Build

Update the file with the provided access key, secret key, and subnet ID, and then run packer build against the template.

Additional Resources

You have been tasked with building a Packer template for a new project. The resulting image build needs to provision an image that will host a website on an Ubuntu 20.04 server. This should use your existing Ansible website.yml playbook via ansible-playbook on the provided workstation, and any hosts provisioned from this AMI should be placed in the web Ansible group for further updates.

A basic template that can provision an Ubuntu 20.04 server on AWS has been provided in the /home/cloud_user/packer/bookapp directory. Expand upon this to finish the template.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?