Forge Home


Install and configure ganeti nodes


196 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.0.8 (latest)
  • 1.0.7
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
released Mar 22nd 2023
This version is compatible with:
  • Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.0.0 < 8.0.0

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'smash-ganeti', '1.0.8'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add smash-ganeti
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install smash-ganeti --version 1.0.8

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



smash/ganeti — version 1.0.8 Mar 22nd 2023

Ganeti Puppet support


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


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.


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'],

Note that, by default, gnt-instance-deboostrap does not install a kernel, so the above extra_packages is actually likely to be needed to get a working install on Debian virtual machines. This will vary based on the guest operating system; on Ubuntu, it might instead be the linux-image-generic package, for example.

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+bullseye -t plain \
 --disk 0:size=14G --disk 1:size=1G,name=swap

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.


See [][] for full reference documentation. Note that this file is generally only generated when a tag is added.

The full online reference documentation for this module may be found at on GitLab Pages. This online reference is generated automatically on each new commit.

Alternatively, you may build yourself the documentation using the puppet strings generate command. See the documentation for Puppet Strings for more information.


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


Developed and maintained by the shared puppet modules group.