Skip to content

A fork from Jeff Geerling's Packer build configurations for Vagrant boxes.

License

Notifications You must be signed in to change notification settings

build-boxes/packer-boxes

 
 

Repository files navigation

A fork of Jeff Geerling's Vagrant Box Packer Builds

Validate Packer JSON files

This project contains the Packer build configurations for all of Jeff Geerling's (geerlingguy's) Vagrant Boxes. Each box builds a minimal base box for use with VirtualBox. Available boxes include:

All of these boxes are available as public, free Vagrant boxes and can be used with the command:

vagrant init geerlingguy/[box name here]
vagrant init raufhammad/[box name here]

You can also fork this repository and customize a build configuration with your own Ansible roles and playbooks to build a fully custom Vagrant box using Packer. For one such example, see the Drupal VM Packer Build.

Requirements

The following software must be installed/present on your local machine before you can use Packer to build any of these Vagrant boxes:

Usage

Make sure all the required software (listed above) is installed, then cd into one of the box directories and run:

$ packer build -var 'version=1.2.0' box-config.json
$ packer build -var 'version=0.0.1' box-config.json.pkr.hcl

After a few minutes, Packer should tell you the box was generated successfully, and the box was uploaded to Vagrant Cloud.

Note: This configuration includes a post-processor that pushes the built box to Vagrant Cloud (which requires a VAGRANT_CLOUD_TOKEN environment variable to be set); remove the vagrant-cloud post-processor from the Packer template to build the box locally and not push it to Vagrant Cloud. You don't need to specify a version variable either, if not using the vagrant-cloud post-processor.

Building all the boxes

Whenever VirtualBox is updated, it's best to re-build all the base boxes so they have the latest guest additions.

Assuming you have Ansible and Packer installed already, and you have a VAGRANT_CLOUD_TOKEN available in your environment, you can run the playbook to build and push updated versions for all the boxes:

ansible-playbook build-boxes.yml

You can also build and push just one box:

ansible-playbook build-boxes.yml -e "{'boxes':['debian10']}"

Testing built boxes

There's an included Vagrantfile that allows quick testing of the built Vagrant boxes. From the same box directory, run the following command after building the box:

$ vagrant up

Test that the box works correctly, then tear it down with:

$ vagrant destroy -f

Building Your Own Vagrant Images

  1. Ubuntu24.04 - Noble Numbat. Links https://askubuntu.com/questions/1403686/ubuntu-22-04-autoinstall-method

'vagrant-cloud' Replaced by 'vagrant-registry'

vagrant-registry provider has been added in packer plugins "github.com/hashicorp/vagrant"

$ packer plugins install github.com/hashicorp/vagrant

VagrantCloud is being decommisioned and replaced by HCL Vagrant Repository. Read the migration documents.

Useful Links (Hammad Rauf)

  1. Packer Boot Options

License

MIT

Author and Maintainer

These configurations were originally published by Jeff Geerling, author of Ansible for DevOps on his Github Repository.
These configurations are a fork from above and maintained by Hammad Rauf.

About

A fork from Jeff Geerling's Packer build configurations for Vagrant boxes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HCL 74.9%
  • Shell 24.2%
  • Ruby 0.9%