Skip to content

Latest commit

 

History

History

packer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Packer

Create identical machine images for multiple platforms from a single configuration

Packer Logo

🚀 Introduction

In this HashiQube DevOps lab, you will get hands-on experience with HashiCorp Packer.

Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. It's lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel.

In this lab, Packer will build a Docker container, use the Shell and Ansible provisioners, and Ansible will connect to Vault to retrieve secrets using a Token.

Introduction to HashiCorp Packer

💡 HCP Packer Cloud Features

Keeping track of base images can be challenging. HashiCorp Co-Founder and CTO Armon Dadgar explains how HCP Packer forms the core of a multi-cloud golden image pipeline.

HCP Packer, part of the HashiCorp Cloud Platform, provides a registry that tracks your image metadata and presents it to downstream processes through an API. Together with the Packer data source in the HCP provider for Terraform, this forms the foundation of a multi-cloud golden image pipeline to automate the lifecycle of images from build through deployment.

🛠️ Getting Started

Packer Templates can be found in these directories:

  • packer/packer/linux
  • packer/packer/windows

You can build local Windows and Ubuntu boxes with Packer using these steps:

  1. Navigate to the Packer directory:

    cd packer
  2. Run the build script:

    ./run.sh

📄 Packer Templates

Packer uses the HashiCorp Configuration Language (HCL), designed to allow concise descriptions of the required steps to get to a build file.

Ubuntu 22.04 Packer Template

packer/linux/ubuntu/ubuntu-2204.pkr.hcl

[filename](packer/linux/ubuntu/ubuntu-2204.pkr.hcl ':include :type=code')

Windows 2019 Packer Template

packer/windows/windowsserver/windows-2019.pkr.hcl

[filename](packer/windows/windowsserver/windows-2019.pkr.hcl ':include :type=code')

⚙️ Packer Vagrant Provisioner

The packer.sh script handles the installation and configuration of Packer:

[filename](packer.sh ':include :type=code')

🔗 Integration Points

Packer integrates with several other HashiCorp and third-party tools:

📚 Resources