Giter VIP home page Giter VIP logo

systemvm-packer's Introduction

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 Every night Jenkins builds systemvm templates from this repository. Find them here.

Requirements

  • Packer
  • Qemu
  • Libguestfs / libguestfs-tools (virt-sparsify)

A Bubble is perfectly suited for this task.

Usage

./build.sh

screen shot 2016-04-03 at 19 51 18 pm

screen shot 2016-04-03 at 20 15 24 pm

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

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

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

systemvm-packer's People

Contributors

bheuvel avatar ddegoede avatar eliasgomes avatar neubauerf avatar remibergsma avatar sanderv32 avatar sspans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

resmo maduhu sspans

systemvm-packer's Issues

Add missing packages

Compared the 4.4, 4.6 (used also for 4.7 and 4.8) with system vm built from this repo.

These packages are missing and need to be added:

21:02 $ diff -u 44_packages_sorted cosmic_packages_sorted | grep -E ^-
--- 44_packages_sorted  2016-04-10 20:53:23.000000000 +0200
-cifs-utils
-haproxy
-hv-kvp-daemon
-init-system-helpers
-nfs-common
-samba-common
21:02 $ diff -u 48_packages_sorted cosmic_packages_sorted | grep -E ^-
--- 48_packages_sorted  2016-04-10 20:53:32.000000000 +0200
-cifs-utils
-haproxy
-hv-kvp-daemon
-init-system-helpers
-nfs-common
-samba-common

As a result, the secondary storage vm is unable to mount:

2016-04-10 19:06:21,080 ERROR [storage.resource.NfsSecondaryStorageResource] (agentRequest-Handler-10:null) GetRootDir for nfs://192.168.22.1:/data/storage/secondary/MCCT-SHARED-1 failed due to com.cloud.utils.exception.CloudRuntimeException: Unable to mount 192.168.22.1:/data/storage/secondary/MCCT-SHARED-1 at /mnt/SecStorage/e1e8a02c-ab60-3403-94b0-a7a418c1457a due to mount: wrong fs type, bad option, bad superblock on 192.168.22.1:/data/storage/secondary/MCCT-SHARED-1,       missing codepage or helper program, or other error       (for several filesystems (e.g. nfs, cifs) you might       need a /sbin/mount.<type> helper program)       In some cases useful info is found in syslog - try       dmesg | tail  or so
com.cloud.utils.exception.CloudRuntimeException: Unable to mount 192.168.22.1:/data/storage/secondary/MCCT-SHARED-1 at /mnt/SecStorage/e1e8a02c-ab60-3403-94b0-a7a418c1457a due to mount: wrong fs type, bad option, bad superblock on 192.168.22.1:/data/storage/secondary/MCCT-SHARED-1,       missing codepage or helper program, or other error       (for several filesystems (e.g. nfs, cifs) you might       need a /sbin/mount.<type> helper program)       In some cases useful info is found in syslog - try       dmesg | tail  or so
        at org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.attemptMount(NfsSecondaryStorageResource.java:2400)
        at org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.mount(NfsSecondaryStorageResource.java:2351)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.