The Mantl Vagrant image is built using Packer. To build it for yourself, run packer build packer/vagrant.json. If you want to build with Atlas, use packer push packer/vagrant.json.

The image is created using the existing Ansible playbooks, but run in a limited mode (specifically, with only tasks tagged bootstrap.) Aside from Ansible, there are a number of shell scripts that are run. Here’s what they do:

Installs Ansible from EPEL

Downloads the default insecure public key from the Vagrant Github repostory to allow the vagrant user to log in.

Installs the VirtualBox Guest Additions so that folder syncing can work inside Vagrant.

Performs cleanup tasks after installation is complete to limit image size when distributed. Specifically:

  • Remove Ansible and cached yum information
  • Remove persistent network information
  • Remove temporary files, including /tmp/* and files under the home directory and log directories.
  • Zero out all empty disk space and sync