define backupninja::mysql(
$order = 10, $ensure = present, $user = false, $dbusername = false, $dbpassword = false,
$dbhost = 'localhost', $databases = 'all', $backupdir = false, $hotcopy = false,
- $sqldump = false, $compress = false, $configfile = '/etc/mysql/debian.cnf',
+ $sqldump = false, $compress = false, $configfile = true,
$vsname = false)
{
- include backupninja::client
- file { "${backupninja::client::configdir}/${order}_${name}.mysql":
+
+ $real_configfile = $configfile ? {
+ true => "/etc/mysql/debian.cnf",
+ default => $configfile,
+ }
+
+ include backupninja::client::defaults
+ file { "${backupninja::client::defaults::configdir}/${order}_${name}.mysql":
ensure => $ensure,
content => template('backupninja/mysql.conf.erb'),
owner => root,
"/home/*/gtk-gnutella-downloads" ],
$include = [ "/var/spool/cron/crontabs", "/var/backups", "/etc", "/root",
"/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ],
- $vsinclude = false, $keep = 30, $sshoptions = false, $options = false, $ssh_dir_manage = true,
- $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true,
- $backuptag = false, $home = false, $backupkeytype = "rsa", $backupkeystore = false)
+ $vsinclude = false, $keep = 30, $sshoptions = false, $options = '--force', $ssh_dir_manage = true,
+ $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true, $key = false,
- $backuptag = false, $extras = false)
++ $backuptag = false, $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false)
{
- include backupninja::client
+ $real_backuptag = $backuptag ? {
+ false => "backupninja-$host",
+ default => $backuptag
+ }
+
+ $directory = "$home/rdiff-backup/"
- case $directory { false: { err("need to define a directory for where the backups should go!") } }
-
+ include backupninja::client::defaults
+
case $type {
'remote': {
case $host { false: { err("need to define a host for remote backups!") } }
+ $real_home = $home ? {
+ false => $directory,
+ default => $home,
+ }
+
backupninja::server::sandbox
{
- "${user}-${name}": user => $user, host => $host, dir => $real_home,
- manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir,
+ "${user}-${name}": user => $user, host => $fqdn, dir => $home,
+ manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir, key => $key,
authorized_keys_file => $authorized_keys_file, installuser => $installuser,
- backuptag => $real_backuptag
- backuptag => $backuptag, keytype => $backupkeytype, backupkeys => $backupkeystore,
++ backuptag => $real_backuptag, keytype => $backupkeytype, backupkeys => $backupkeystore,
}
-
+
backupninja::client::key
{
"${user}-${name}": user => $user, host => $host,
owner => root,
group => root,
mode => 0600,
- require => File["${backupninja::client::configdir}"]
+ require => File["${backupninja::client::defaults::configdir}"]
}
+ include backupninja::rdiff-installed
+}
+
+class backupninja::rdiff-installed {
+ case $lsbdistcodename {
+ "etch": { $version = "1.2.5-1~bpo40+1" }
+ default: { $version = "installed" }
+ }
+ package { "rdiff-backup": ensure => $version }
}
# get created on the server
define sandbox(
$user = false, $host = false, $installuser = true, $dir = false, $manage_ssh_dir = true,
- $ssh_dir = false, $authorized_keys_file = false, $key = false, $key_type = 'ssh-dss', $backupkeys = false, $uid = false,
- $ssh_dir = false, $authorized_keys_file = false, $backupkeys = false, $keytype = "rsa",
- $uid = false, $gid = "backupninjas", $backuptag = false)
++ $ssh_dir = false, $authorized_keys_file = false, $key = false, $keytype = 'dss', $backupkeys = false, $uid = false,
+ $gid = "backupninjas", $backuptag = false)
{
- $real_user = $name ? {
+ $real_user = $user ? {
false => $name,
default => $user,
'' => $name,
default => $authorized_keys_file,
}
$real_backuptag = $backuptag ? {
- false => "backupninja-$fqdn",
+ false => "backupninja-$real_host",
default => $backuptag,
}
-
+
+ # configure a passive service check for backups
+ nagios2::passive_service { "backups-$real_host": nagios2_host_name => $real_host, nagios2_description => 'backups', servicegroups => "backups" }
+
- @@file { "$real_dir":
- ensure => directory,
- mode => 0750, owner => $real_user, group => 0,
- tag => "$real_backuptag",
+ if !defined(File["$real_dir"]) {
+ @@file { "$real_dir":
+ ensure => directory,
- mode => 0750, owner => $user, group => 0,
++ mode => 0750, owner => $real_user, group => 0,
+ tag => "$real_backuptag",
+ }
}
case $installuser {
true: {
case $manage_ssh_dir {
true: {
- @@file { "${real_ssh_dir}":
- ensure => directory,
- mode => 0700, owner => $real_user, group => 0,
- require => [User[$real_user], File["$real_dir"]],
- tag => "$real_backuptag",
+ if !defined(File["$real_ssh_dir"]) {
+ @@file { "${real_ssh_dir}":
+ ensure => directory,
- mode => 0700, owner => $user, group => 0,
- require => File["$real_dir"],
++ mode => 0700, owner => $real_user, group => 0,
++ require => [User[$real_user], File["$real_dir"]],
+ tag => "$real_backuptag",
+ }
}
}
}
- if !defined(File["${real_ssh_dir}/${real_authorized_keys_file}"]) {
- @@file { "${real_ssh_dir}/${real_authorized_keys_file}":
- ensure => present,
- mode => 0644, owner => 0, group => 0,
- source => "$real_backupkeys/${user}_id_${keytype}.pub",
- require => File["${real_ssh_dir}"],
- tag => "$real_backuptag",
+ case $key {
+ false: {
- @@file { "${real_ssh_dir}/${real_authorized_keys_file}":
- ensure => present,
- mode => 0644, owner => 0, group => 0,
- source => "$real_backupkeys/${real_user}_id_rsa.pub",
- require => File["${real_ssh_dir}"],
- tag => "$real_backuptag",
++ if !defined(File["${real_ssh_dir}/${real_authorized_keys_file}"]) {
++ @@file { "${real_ssh_dir}/${real_authorized_keys_file}":
++ ensure => present,
++ mode => 0644, owner => 0, group => 0,
++ source => "$real_backupkeys/${real_user}_id_${keytype}.pub",
++ require => File["${real_ssh_dir}"],
++ tag => "$real_backuptag",
++ }
+ }
+ }
+ default: {
+ @@ssh_authorized_key{ $real_user:
+ type => $key_type,
+ key => $key,
+ user => $real_user,
+ target => "${real_ssh_dir}/${real_authorized_keys_file}",
+ tag => "$real_backuptag",
+ require => User[$real_user],
+ }
}
- }
+ }
case $uid {
false: {
- @@user { "$real_user":
- ensure => "present",
- gid => "$gid",
- comment => "$name backup sandbox",
- home => "$real_dir",
- managehome => true,
- shell => "/bin/sh",
- password => '*',
- require => Group['backupninjas'],
- tag => "$real_backuptag"
+ if !defined(User["$real_user"]) {
+ @@user { "$real_user":
+ ensure => "present",
+ gid => "$gid",
+ comment => "$name backup sandbox",
+ home => "$real_dir",
+ managehome => true,
+ shell => "/bin/sh",
+ password => '*',
- require => Group['backupninjas'],
++ require => Group['backupninjas'],
+ tag => "$real_backuptag"
+ }
}
}
default: {
- @@user { "$real_user":
- ensure => "present",
- uid => "$uid",
- gid => "$gid",
- comment => "$name backup sandbox",
- home => "$real_dir",
- managehome => true,
- shell => "/bin/sh",
- password => '*',
- require => Group['backupninjas'],
- tag => "$real_backuptag"
- if !defined(User["$real_user"]) {
++ if !defined(User["$real_user"]) {
+ @@user { "$real_user":
+ ensure => "present",
+ uid => "$uid",
+ gid => "$gid",
+ comment => "$name backup sandbox",
+ home => "$real_dir",
+ managehome => true,
+ shell => "/bin/sh",
+ password => '*',
- require => Group['backupninjas'],
++ require => Group['backupninjas'],
+ tag => "$real_backuptag"
+ }
}
}
}