Version information
Start using this module
Add this module to your Puppetfile:
mod 'loic-rsnapshot', '1.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-rsnapshot
Introduction
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 ).
Usage
puppet-rsnapshot is a puppet module that should be installed in the puppet master as follows
git clone http://redmine.the.re/git/puppet-rsnapshot.git /etc/puppet/modules/rsnapshot
or
puppet module install puppet-rsnapshot
Here is an example usage of the module extracted from a manifest:
node 'bm0001.the.re' { class { 'rsnapshot::puppetmaster': } class { 'rsnapshot::client': excludes => [ '/var/lib/glance', '/var/lib/nova', '/media/turnkey', ] } }
node 'rsnapshot.novalocal' { class { 'rsnapshot::server': ip => "5.9.88.172,${::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
License
Copyright (C) 2013 Loic Dachary loic@dachary.org
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
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 http://www.gnu.org/licenses/.
Contact
Loic Dachary loic@dachary.org
Support
Please log tickets and issues at the project site
Dependencies
- puppetlabs/stdlib (2.x)