This repository contains Packer templates to build Ubuntu base images. Both server and desktop and a Catosplace Engineering base image based on the desktop variant.
These images will form the basis of Catosplace's new developer onboarding practice. They will use Vagrant provisioning and Dojo Docker-based development environments to reduce onboarding cycle time.
The Packer configurations provisions default tooling that Catosplace contributors regularly use into the Catosplace Engineering image.
The currently provided source templates are:
- VirtualBox Ubuntu Server 20.04.2 AMD64
- VirtualBox Ubuntu Desktop 20.04.2 AMD64
- VirtualBox Catosplace Engineering
Packer templates enable multiple OS, multiple virtualization technologies and output formats. The Catosplace Packer templates currently only support the Ubuntu OS, VirtualBox virtualization and Vagrant outputs.
Current versions of Ubuntu provided are:
- 20.04.2
Currently, the Packer templates only build VirtualBox images.
The packer configuration uses the Vagrant post-processor to build a Vagrant box derived from the Catosplace Engineering image.
The currently installed tools are:
The Packer templates require you to have the following tools available:
The packer cli enables you to build the Packer template images and Vagrant box.
You can build all images at once, or each is individually using the packer cli.
You can build all of the images using the following command:
packer build.
You can build a single image using the -only cli parameter, passing an expression that identifies the box you wish to create based on the name. The command that follows would only build the server variant, as it only matches the server variant build name.
packer build \
-only *server-amd64 .
This repository leverages the pre-commit project to configure Git pre-commit hooks. Currently, we run the packer fmt and packer validate commands at this time.
To install the pre-commit hooks, run the pre-commit install command. You can run the checks before committing using the pre-commit --run all-files command.