Debugging a Packer Build

30 minutes
  • 3 Learning Objectives

About this Hands-on Lab

Packer lets us quickly and easily build machine images — at least, it does when everything works. Luckily, Packer provides us with two methods of debugging and testing our builds: the `-debug` flag and the breakpoint provisioner. In this lab, we’ll use both of these tools to troubleshoot a troublesome build.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Test Build and Troubleshoot
  1. Test the build.
  2. Proceed until the build fails.
  3. In another terminal session, log in to the server a second time. Look for the LXD container from this build and access it via SSH.
  4. Troubleshoot.
  5. For some reason, our file downloaded as an HTML file, not a proper gzip archive! Should we look at the file itself, we can see we’re being redirected. We can now close this window, finish our -debug Packer build, and take a look at our script where we download the Prometheus file.
  6. We pull down our gzip file on line 12. The curl command is properly structured, and it does pull down a file, but we’ll need to add the -L flag, which will follow any redirects.
  7. Save and exit the file.
Add the Breakpoint Provisioner

Before we proceed with testing our fix, we want to add one more provisioner to our packer.json file to test our work and ensure Prometheus is running after our provisioning step runs successfully.

Test the Build
  1. Run the build.
  2. When you hit the first breakpoint provisioner, access the Packer container and check the file type of the download.
  3. Stay logged in to the container as you progress to the next breakpoint, and then confirm Prometheus is working.
  4. Allow the build to finish.

Additional Resources

You are working on a LXD container image that deploys a Prometheus instance; however, there is an error when you attempt to build the container image. Attempt to build the image, and then troubleshoot the error using -debug. Finally, confirm the fix with the breakpoint provisioner.

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?