1
0
mirror of https://github.com/krislamo/puppet-rsnapshot synced 2024-11-10 00:00:35 +00:00
Puppet module for setting up a centralized backup server with rsnapshot
Go to file
2015-12-19 21:13:55 +01:00
lib/puppet/parser/functions add custom function to allow for empty hashes in params (specify hostname only to pickup defaults) 2015-12-19 21:13:55 +01:00
manifests add custom function to allow for empty hashes in params (specify hostname only to pickup defaults) 2015-12-19 21:13:55 +01:00
spec working prototype (config generation) 2015-12-19 11:16:05 +01:00
templates working prototype (config generation) 2015-12-19 11:16:05 +01:00
tests working prototype (config generation) 2015-12-19 11:16:05 +01:00
.fixtures.yml working prototype (config generation) 2015-12-19 11:16:05 +01:00
.travis.yml working prototype (config generation) 2015-12-19 11:16:05 +01:00
CONTRIBUTING.md working prototype (config generation) 2015-12-19 11:16:05 +01:00
Gemfile working prototype (config generation) 2015-12-19 11:16:05 +01:00
metadata.json add backup_defaults feature 2015-12-19 18:32:24 +01:00
Rakefile working prototype (config generation) 2015-12-19 11:16:05 +01:00
README.md working prototype (config generation) 2015-12-19 11:16:05 +01:00

rsnapshot

Build Status

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with rsnapshot
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module

Overview

This puppet module manages rsnapshot configuration. It's a barebones module, as it doesn't deal with managing ssh keys or cron rules to trigger rsnapshot.

At the moment, this module has been tested with Puppet 3.x and Ubuntu 12.04, 14.04 and Debian 6. If you have another OS/Puppet version you want to include, please submit a pull request!

Module Description

This module is a barebones rsnapshot installation and configuration system. It came into existing because we needed an rsnapshot module but didn't want to have it generate cron rules or setup ssh keys (rsnapshot only needs to generate local backups for us).

It is relatively trivial to then add a cron rule to trigger rsnapshot, and managing ssh keys can be done through ssh_authorized_key.

Setup

What rsnapshot affects

  • rsnapshot package and its dependencies
  • /etc/rsnapshot.conf (by default)

Usage

You only need to declare the rsnapshot class, and configure the parameters you need. The class will default to sane values for your OS if you don't override some parameters.

While you can include the class as is, it wont be useful unless you specify backups or backup_scripts.

Reference

backups

A hash backup locations. The key is the source, the value is the destination.

class { 'rsnapshot':
  backups => {
    '/home/' => 'localhost/',
  }
}

If you want the backup stanza to have overriden configuration options, add them to the destination, separated by a tab character:

class { 'rsnapshot':
  backups => {
    '/home/' => 'localhost/	one_fs=1',
  }
}

backup_scripts

Exactly like backups, except that they generate backup_script stanzas.

Limitations

The module has been tested/used in production with Puppet 3.x.

On the OS side, the module currently only works on Debian-family OSes, but we'd love to get a patch to add support for more families/operating systems.

Development

Development is happening on github, and we welcome pull requests!