Forge Home


Install and configure backupninja


183 latest version

3.1 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

  • 0.2.9 (latest)
  • 0.2.8
  • 0.2.7
  • 0.2.6
  • 0.2.5
  • 0.2.4
  • 0.2.3
  • 0.2.2
  • 0.2.1
  • 0.2.0
  • 0.1.3
released Nov 8th 2022
This version is compatible with:
  • ,

Start using this module

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

Add this module to your Puppetfile:

mod 'ULHPC-backupninja', '0.2.9'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add ULHPC-backupninja
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install ULHPC-backupninja --version 0.2.9

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.



ULHPC/backupninja — version 0.2.9 Nov 8th 2022

-- mode: markdown; mode: visual-line; --

Backupninja Puppet Module

Puppet Forge License Supported Platforms Documentation Status

Install and configure backupninja

  Copyright (c) 2017 UL HPC Team <>

| Project Page | Sources | Documentation | Issues |


Install and configure backupninja.

This module implements the following elements:

  • Puppet classes:

    • backupninja
    • backupninja::common
    • backupninja::common::debian
    • backupninja::common::redhat
    • backupninja::params
  • Puppet definitions:

    • backupninja::distantlvm
    • backupninja::ldap
    • backupninja::mysql
    • backupninja::pgsql
    • backupninja::rsync

All these components are configured through a set of variables you will find in manifests/params.pp.

Note: the various operations that can be conducted from this repository are piloted from a Rakefile and assumes you have a running Ruby installation. See docs/ for more details on the steps you shall follow to have this Rakefile working properly.


See metadata.json. In particular, this module depends on

Overview and Usage

Class backupninja

This is the main class defined in this module. It accepts the following parameters:

  • $ensure: default to 'present', can be 'absent'

Use it as follows:

 include ' backupninja'

See also tests/init.pp

Class backupninja::common

See tests/common.pp

Class backupninja::common::debian

See tests/common/debian.pp

Class backupninja::common::redhat

See tests/common/redhat.pp

Class backupninja::params

See tests/params.pp

Definition backupninja::distantlvm

The definition backupninja::distantlvm provides a way to configure our own distantlvm backup action. It creates LVM logical volume snapshot, and retrieves them via ssh. It is of your responsibility to set-up sudo and authorize ssh connections from the backup server to the remote server.

This definition accepts the following parameters:

  • $ensure: default to 'present', can be 'absent'
  • $vg: lvm volume group name on the remote server
  • $lv: space separated list of logical volumes to be backed up
  • $backupdir: backup target directory (local)
  • $ssh_host: remote server hostname
  • $ssh_user: remote ssh server user
  • $ssh_port: remote ssh server port
  • $when: execution time, using backupninja format
  • $keep: if specified, keep the last $keep backups


backupninja::distantlvm { "backup_dom0_${name}":
    ensure     => 'present',
    backupdir  => '/data/backup_dom0',
    ssh_host   => '',
    ssh_user   => 'localuser',
    ssh_port   => '22',
    vg         => vg_domU,
    lv         => 'domu1-disk domu2-disk domu3-disk',
    keep       => 5,
    when       => 'mondays at 03:00'

Definitions backupninja::ldap, backupninja::rsync, backupninja::pgsql, backupninja::mysql

These definitions implements the standard handlers provided by backupninja. All the parameters are derived from the handlers and are documented online

Librarian-Puppet / R10K Setup

You can of course configure the backupninja module in your Puppetfile to make it available with Librarian puppet or r10k by adding the following entry:

 # Modules from the Puppet Forge
 mod "ulhpc-backupninja"

or, if you prefer to work on the git version:

 mod "ulhpc-backupninja", 
     :git =>,
     :ref => production 

Issues / Feature request

You can submit bug / issues / feature request using the ulhpc-backupninja Puppet Module Tracker.

Developments / Contributing to the code

If you want to contribute to the code, you shall be aware of the way this module is organized. These elements are detailed on docs/

You are more than welcome to contribute to its development by sending a pull request.

Puppet modules tests within a Vagrant box

The best way to test this module in a non-intrusive way is to rely on Vagrant. The Vagrantfile at the root of the repository pilot the provisioning various vagrant boxes available on Vagrant cloud you can use to test this module.

See docs/ for more details.

Online Documentation

Read the Docs aka RTFD hosts documentation for the open source community and the ULHPC-backupninja puppet module has its documentation (see the docs/ directly) hosted on readthedocs.

See docs/ for more details.


This project and the sources proposed within this repository are released under the terms of the GPL-3.0 licence.