-- mode: markdown; mode: visual-line; --
Install and configure backupninja
Copyright (c) 2017 UL HPC Team <[email protected]>
| 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/contributing.md
for more details on the steps you shall follow to have this Rakefile
working properly.
See metadata.json
. In particular, this module depends on
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
See tests/common.pp
See tests/params.pp
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
Example:
backupninja::distantlvm { "backup_dom0_${name}":
ensure => 'present',
backupdir => '/data/backup_dom0',
ssh_host => 'dom0-server.uni.lu',
ssh_user => 'localuser',
ssh_port => '22',
vg => vg_domU,
lv => 'domu1-disk domu2-disk domu3-disk',
keep => 5,
when => 'mondays at 03:00'
}
These definitions implements the standard handlers provided by backupninja. All the parameters are derived from the handlers and are documented online
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 => https://github.com/ULHPC/puppet-backupninja,
:ref => production
You can submit bug / issues / feature request using the ulhpc-backupninja Puppet Module Tracker.
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/contributing.md
.
You are more than welcome to contribute to its development by sending a pull request.
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/vagrant.md
for more details.
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/rtfd.md
for more details.
This project and the sources proposed within this repository are released under the terms of the GPL-3.0 licence.