# Open-O Project CI Packer

[Packer][1] is a tool for automatically creating VM and container images,
configuring them and post-processing them into standard output formats.

We build Open-O's CI images via Packer.

## Building

You'll need to [install Packer][2], of course.

Open-O's Packer configuration is divided into build-specific variables,
output-specific templates and a set of shared provisioning scripts. To do a
specific build, combine the template for the desired output artifact type with
a variable file. To build a new builder instance the following would be done:

```
packer build -var-file=vars/cloud-env.json -var-file=vars/centos.json templates/builder.json
```

**NOTE:** vars/cloud-env.json is a gitignored file as it contains private
information. There is a vars/cloud-env.json.example file that may be used as a
base for creating the one needed.

This would build a bootable image in the Open-O CI cloud environment.

From a high level, the builds:

-   Boot a specified base image in the cloud
-   Run a set of shell scripts, listed in the template's shell provisioner
    section, to do any configuration required by the builder.
-   Execute a shutdown of the running instance
-   Execute a 'nova image-create' operation against the shutdown instance.
-   Perform a 'nova delete' operation against the shutdown instance.

[1]: https://www.packer.io/
[2]: https://www.packer.io/intro/getting-started/setup.html
