Forge Home


rsnapshot configuration, client and server side


9,952 latest version

1.6 quality score

Version information

  • 1.0.0 (latest)
released Jan 2nd 2013

Start using this module

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

Add this module to your Puppetfile:

mod 'loic-rsnapshot', '1.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add loic-rsnapshot
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install loic-rsnapshot --version 1.0.0

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.



loic/rsnapshot — version 1.0.0 Jan 2nd 2013



puppet-rsnapshot is a rsnapshot puppet module. It is based on the following assumptions:

  • All machines have rsync over ssh
  • All backups consist of the entire file system of the machine
  • It takes less than two hours to backup all machines

If this does not match the intended usage pattern, it may be better to consider an alternative.

A ssh key is created on the puppet master ( by the rsnapshot::puppetmaster class ) and installed in the root authorized_keys file of each machines to be backuped ( by the rsnapshot::client class ). The machine running rsnapshot has one configuration file per client ( generated by the rsnapshot::server class ). It runs each backup in sequence, starting in the middle of the night. The health of the backups can be monitored by nagios using a nagios plugin ( installed by the rsnapshot::nagios class ).


puppet-rsnapshot is a puppet module that should be installed in the puppet master as follows

git clone /etc/puppet/modules/rsnapshot


puppet module install puppet-rsnapshot

Here is an example usage of the module extracted from a manifest:

node '' { class { 'rsnapshot::puppetmaster': } class { 'rsnapshot::client': excludes => [ '/var/lib/glance', '/var/lib/nova', '/media/turnkey', ] } }

node 'rsnapshot.novalocal' { class { 'rsnapshot::server': ip => ",${::ipaddress}", } }

node 'jenkins.novalocal', 'redmine.novalocal', 'there.novalocal' { class { 'rsnapshot::client': ip => $::ipaddress, } }

node 'debian.novalocal' { class { 'rsnapshot::client': ip => $::ipaddress, excludes => [ '/media/debian' ], } } node 'nagios.novalocal' { class { 'rsnapshot::nagios: } }

For a detailed explanation of each class, check the documentation


Copyright (C) 2013 Loic Dachary

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of


GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License

along with this program. If not, see


Loic Dachary


Please log tickets and issues at the project site