From: Antoine Beaupre Date: Thu, 24 Sep 2009 16:16:03 +0000 (-0400) Subject: Merge commit 'micah/master' X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=343f27fa91865c0c20f633f36048f8d61179fb02;p=puppet-backupninja.git Merge commit 'micah/master' Conflicts: manifests/mysql.pp manifests/rdiff.pp manifests/server.pp --- 343f27fa91865c0c20f633f36048f8d61179fb02 diff --cc manifests/maildir.pp index 624e5d1,d871654..1427af1 --- a/manifests/maildir.pp +++ b/manifests/maildir.pp @@@ -36,7 -36,6 +36,7 @@@ define backupninja::maildir owner => root, group => root, mode => 0600, - require => File["${backupninja::client::configdir}"] + require => File["${backupninja::client::defaults::configdir}"] } + package { rsync: ensure => installed } } diff --cc manifests/mysql.pp index 6241519,e6cfe90..83d8f8f --- a/manifests/mysql.pp +++ b/manifests/mysql.pp @@@ -17,17 -17,11 +17,17 @@@ 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) { + + $real_configfile = $configfile ? { + true => "/etc/mysql/debian.cnf", + default => $configfile, + } + - include backupninja::client - file { "${backupninja::client::configdir}/${order}_${name}.mysql": + include backupninja::client::defaults + file { "${backupninja::client::defaults::configdir}/${order}_${name}.mysql": ensure => $ensure, content => template('backupninja/mysql.conf.erb'), owner => root, diff --cc manifests/rdiff.pp index 8e0e769,b32a262..1d171b2 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@@ -23,29 -23,31 +23,35 @@@ define backupninja::rdiff "/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) { + $real_backuptag = $backuptag ? { + false => "backupninja-$host", + default => $backuptag + } + + $directory = "$home/rdiff-backup/" - include backupninja::client + include backupninja::client::defaults + - case $directory { false: { err("need to define a directory for where the backups should go!") } } - 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, @@@ -59,16 -63,7 +67,16 @@@ 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 } } diff --cc manifests/server.pp index 77fc33d,790c931..52cb11c --- a/manifests/server.pp +++ b/manifests/server.pp @@@ -48,11 -30,11 +48,11 @@@ class backupninja::server # 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, @@@ -78,77 -60,70 +78,87 @@@ 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" + } } } }