Commit a961041c authored by Jerome Charaoui's avatar Jerome Charaoui

Update README, see upgrade notice

parent a91b1a78
...@@ -4,28 +4,33 @@ Backupninja Module ...@@ -4,28 +4,33 @@ Backupninja Module
This module helps you configure all of your backups with puppet, using This module helps you configure all of your backups with puppet, using
backupninja! backupninja!
! Upgrade notice ! !! UPGRADE NOTICE !!
If you were previously using this module, some pieces have changed, If you were previously using this module, some pieces have changed,
and you need to carefully change your use of them, or you will find and you need to carefully change your use of them, or you will find
your backups to be duplicated on your backup server. The important your backups could stop working.
part that changed has to do with the rdiff-backup handler, if you
weren't using that, you don't need to worry. The backupninja::client class has been renamed to backupninja, and is
now *required* in all node manifests. Make sure the backupninja class
If you were, you will need to make sure you change all of your is now declared in all your node manifests! This new class now defines
"$directory" parameters to be "$home" instead, and on your defaults which were previously provided by backupninja::client::defaults,
backupserver you will need to move all of your backups into and can now be overridden thanks to the brand new technology of class
"$home"/rdiff-backup. Previously, they were put in "$directory", which parameters. This class also manages the backupninja configuration file,
doubled as the home for the user that was created. This caused replacing the backupninja::config ressource.
problems with rdiff-backup because of dot files and other things which
were not part of any rdiff-backup. The backupninja::server class has some minor changes, including some
changes related to the nagios passive checks. See the code for details.
Getting started
Handlers are *mostly* unchanged.
See below for dependencies which have been introduced in this version.
Dependencies
--------------- ---------------
First you will need to import the module: This module requires Puppet versions 2.7 and up.
import "backupninja" An up-to-date version of the puppet-stdlib module is also required.
Configure your backup server Configure your backup server
---------------------------- ----------------------------
...@@ -35,41 +40,41 @@ to your node definition for that server: ...@@ -35,41 +40,41 @@ to your node definition for that server:
include backupninja::server include backupninja::server
The default configuration will store backup data in the "/backup"
directory. To change this you may declare the class with a "backupdir"
parameter:
class { 'backupninja::server':
backupdir => '/mnt/backupdata'
}
By configuring a backupninja::server, this module will automatically By configuring a backupninja::server, this module will automatically
create sandboxed users on the server for each client for their create sandboxed users on the server for each client for their
backups. backups.
You may also want to set some variables on your backup server, such as:
$backupdir = "/backups"
Configure your backup clients Configure your backup clients
----------------------------- -----------------------------
The backupninja package and the necessary backup software will be First, you need to include the backupninja class or declare it with
installed automatically when you include any of the different handlers custom parameters:
(as long as you are not handling it elsewhere in your manifests), for
example:
include backupninja::client::rdiff_backup class { 'backupninja':
loglvl => 3,
usecolors => false,
reportsuccess => false,
reportwarning => true,
ensure_backupninja_version => '1.0.1-1',
ensure_rdiffbackup_version => '1.2.8-7'
}
In this case, the module will make sure that the backupninja package In this case, the module will make sure that the backupninja package
and the required rdiff-backup package are 'installed'/'present' (using is installed (using puppet's ensure parameter language) and create the
puppet's ensure parameter language). If you need to specify a specific /etc/backupninja.conf configuration file.
version of either backupninja itself, or the specific programs that
the handler class installs, you can specify the version you need If you need to specify a specific version of either backupninja itself,
installed by providing a variable, for example: or the specific programs that the handler class installs, you can
specify the version you need installed by providing a class parameter,
$backupninja_ensure_version = "0.9.7~bpo50+1" as shown in the example.
$rdiff_backup_ensure_version = "1.2.5-1~bpo40+1"
$rsync_ensure_version = "3.0.6-1~bpo50+1"
$duplicity_ensure_version = "0.6.04-1~bpo50+1"
$debconf_utils_ensure_version = "1.5.28"
$hwinfo_ensure_version = "16.0-2"
If you do not specify these variables the default 'installed/present'
version will be installed when you include this class.
Configuring handlers Configuring handlers
-------------------- --------------------
...@@ -87,7 +92,7 @@ Included below are some configuration examples for different handlers. ...@@ -87,7 +92,7 @@ Included below are some configuration examples for different handlers.
* An example mysql handler configuration: * An example mysql handler configuration:
backupninja::mysql { all_databases: backupninja::mysql { 'all_databases':
user => root, user => root,
backupdir => '/var/backups', backupdir => '/var/backups',
compress => true, compress => true,
...@@ -96,7 +101,7 @@ backupninja::mysql { all_databases: ...@@ -96,7 +101,7 @@ backupninja::mysql { all_databases:
* An example rdiff-backup handler configuration: * An example rdiff-backup handler configuration:
backupninja::rdiff { backup_all: backupninja::rdiff { 'backup_all':
directory => '/media/backupdisk', directory => '/media/backupdisk',
include => ['/var/backups', '/home', '/var/lib/dpkg/status'], include => ['/var/backups', '/home', '/var/lib/dpkg/status'],
exclude => '/home/*/.gnupg' exclude => '/home/*/.gnupg'
...@@ -104,32 +109,13 @@ backupninja::rdiff { backup_all: ...@@ -104,32 +109,13 @@ backupninja::rdiff { backup_all:
* A remote rdiff-backup handler: * A remote rdiff-backup handler:
backupninja::rdiff { "main": backupninja::rdiff { 'main':
host => "backup.example.com", host => 'backup.example.com',
type => "remote", type => 'remote',
directory => "/backup/$fqdn", directory => "/backup/${::fqdn}",
user => "backup-$hostname", user => "backup-${::hostname}",
}
Configuring backupninja itself
------------------------------
You may wish to configure backupninja itself. You can do that by doing
the following, and the /etc/backupninja.conf will be managed by
puppet, all the backupninja configuration options are available, you
can find them inside this module as well.
For example:
backupninja::config { conf:
loglvl => 3,
usecolors => false,
reportsuccess => false,
reportwarning => true;
} }
Automatic creation of ssh-keys for duplicity Automatic creation of ssh-keys for duplicity
-------------------------------------------- --------------------------------------------
...@@ -160,9 +146,9 @@ i.e.: ...@@ -160,9 +146,9 @@ i.e.:
Nagios alerts about backup freshness Nagios alerts about backup freshness
------------------------------------ ------------------------------------
If you set the $nagios_server variable to be the name of your nagios If you set the $backupninja::server::nagios_server variable to be the
server, then a passive nagios service gets setup so that the backup name of your nagios server, then a passive nagios service gets setup so
server pushes checks, via a cronjob that calls that the backup server pushes checks, via a cronjob that calls
/usr/local/bin/checkbackups.pl, to the nagios server to alert about /usr/local/bin/checkbackups.pl, to the nagios server to alert about
relative backup freshness. relative backup freshness.
...@@ -171,9 +157,4 @@ To use this feature a few pre-requisites are necessary: ...@@ -171,9 +157,4 @@ To use this feature a few pre-requisites are necessary:
. configure nsca on your backup server (not done via puppet yet) . configure nsca on your backup server (not done via puppet yet)
. configure nsca on your nagios server (not done via puppet yet) . configure nsca on your nagios server (not done via puppet yet)
. server backup directories are named after their $fqdn . server backup directories are named after their $fqdn
. using nagios2 module, nagios/nagios3 modules/nativetypes not supported yet
. using a nagios puppet module that can create passive service checks
. backups must be under $home/dup, $home/rdiff-backup depending on method . backups must be under $home/dup, $home/rdiff-backup depending on method
. $nagios_server must be set before the class is included
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment