Skip to content

jhoblitt/puppet-rsnapshot-old

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 loic/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