Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/MissionCriticalCloud/systemvm-packer

Cosmic systemvm template Packer build
https://github.com/MissionCriticalCloud/systemvm-packer

cloudstack cosmic packer systemvm

Last synced: 2 months ago
JSON representation

Cosmic systemvm template Packer build

Awesome Lists containing this project

README

        

# Cosmic System VM builder
This builds a systemvm template with Packer to be used with the Cosmic Cloud Orchestrating Platform.

## Download pre-build templates
[![Build Status](https://beta-jenkins.mcc.schubergphilis.com/job/cosmic-systemvm/job/packer-build/badge/icon)](https://beta-jenkins.mcc.schubergphilis.com/job/cosmic-systemvm/job/packer-build/)
Every night Jenkins builds systemvm templates from this repository. [Find them here](https://beta-jenkins.mcc.schubergphilis.com/job/cosmic-systemvm/job/packer-build/).

## Requirements
- [Packer](http://packer.io)
- [Qemu](http://wiki.qemu.org/Main_Page)
- Libguestfs / libguestfs-tools (virt-sparsify)

A [Bubble](https://github.com/MissionCriticalCloud/bubble-blueprint) is perfectly suited for this task.

## Usage
`./build.sh`

![screen shot 2016-04-03 at 19 51 18 pm](https://cloud.githubusercontent.com/assets/1630096/14233892/95dfcde2-f9d5-11e5-8619-72055519a657.png)

![screen shot 2016-04-03 at 20 15 24 pm](https://cloud.githubusercontent.com/assets/1630096/14234036/e0621bc4-f9d8-11e5-9a2e-dbde2ec233b9.png)

## Artifacts
Artifacts are a compressed QCOW2 and a VHD systemvm image in the `./packer_output` folder.

![screen shot 2016-04-03 at 19 50 36 pm](https://cloud.githubusercontent.com/assets/1630096/14233897/bedc461c-f9d5-11e5-80e3-9d5f069efbbf.png)

## Versioning of the Cosmic System VMs
The build script will generate a new version every day. On `April 3rd 2016`, the version would be `16.4.3`, etc. This is done so that it can be easy upgraded and that it is visible when the image was build (and thus which security patches are included).

Previously, only during version upgrades a new systemvm template was introduced. Starting with version `4.6` this was only done when needed in order to simplify the upgrades and reduce the impact (downtime) for users. Now, with the automated build and clear versioning, the Cosmic system VMs can be upgrade at any time, at any pace.

In Cosmic, there are several `global settings` to tweak when working with system VM templates:
- `minreq.sysvmtemplate.version` this is the minimum version virtual routers should report for the management server to be able to work with. When you set it to `16.4.1`, anything newer will be accepted (`16.4.3`, `16.5.12`, `16.7.1`, etc) and older versions are rejected (`4.6.0` (legacy versioning), `16.3.22`, `16.2.1`, etc). Routers that are not up-o-date will display a `Requires Upgrade` flag.
- `router.version.check` Should the version check be undesireable, then you can turn it off by setting this to `false`. It is `true` by default.
- `router.template.xenserver` and `router.template.kvm`. These point to the name of the template that should be used for new system VMs. For example `cosmic-systemvm-16.4.3`.

## Router with a Cosmic System VM
![image](https://cloud.githubusercontent.com/assets/1630096/14233812/06d8512a-f9d3-11e5-93bb-dff8cb490d07.png)

## Compatibility
The system VMs generated by this build are compabible with:
- Any Cosmic Cloud version
- Apache CloudStack `4.6`, `4.7` and `4.8`
- Possibly also with older Apache CloudStack versions but that has to be tested.

Compared to the stock Apache CloudStack system VMs, these are the changes:
- Larger disk with less partitions (so you can manually install packages or updates should you wish)
- Versioning, as described above
- Works in separate repository. Therefore it does not include `systemvm`-scripts, as these will be copied from the `systemvm.iso` at time of use anyway.

## Authors
- Boris Schrijver
- Remi Bergsma