smash-ganeti

Install and configure the ganeti cluster management tool


Keywords
ganeti, node, kvm, cluster, cloud
License
GPL-3.0+
Install
puppet module install smash-ganeti --version 1.0.0

Documentation

Ganeti Puppet support

Description

The ganeti module installs and configures packages to configure a Ganeti cluster.

Setup

This module does not initialize a cluster or add nodes, which are expected to be pre-installed in the cluster. However, it will properly prepare nodes with the right software to do so. So normally, you should only have to run gnt-cluster init on the master and gnt-node add for each secondary node.

Requires the camptocamp/kmod module in order to load the right kernel modules when the module is configured with_drbd.

Usage

The main ganeti class handles most of the work:

include ganeti

It sets up ganeti packages and also deploys a few set of custom hooks to make gnt-instance-debootstrap work properly. Extra hooks can be deployed manually in /etc/ganeti/instance-debootstrap/hooks/ as needed. The debootstrap configuration can be modified through the bootstrap_defaults parameter. This, for example, will add extra pacakges to every install:

  class { ganeti :
    debootstrap_defaults => {
      extra_packages => ['linux-image-amd64', 'dbus', 'libpam-systemd'],
    }
  }

Creating a swap partition at instance creation

If you are using ganeti-instance-debootstrap to provision the base install for your instances, this module provides a hook that will help you setup a disk as a swap partition upon instance creation.

To achieve this, you need to label (name) one of the disk as "swap", as in the following example:

gnt-instance add -d -o debootstrap+buster -t plain \
 --disk 0:size=14G --disk 1:size=1G,name=swap
 instance1.example.com

Here, we have one disk of 1Gb that's named "swap": this will be used as swap space automatically. The other disk will be used as the main disk to install the system on.

Reference

See [REFERENCE.md][].

Limitations

Tested on Debian stretch and buster, compatibility with other versions and distributions unknown.

Development

Developed and maintained by the shared puppet modules group.