From 5b9c6255b87f0cf029320973053e4f7ad98063f0 Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Sat, 6 Dec 2008 19:49:22 -0500 Subject: replace the directory parameter by a home parameter the directory is now /rdiff-backup to avoid rdiff-backup overwriting the .ssh dir at every run --- manifests/rdiff.pp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index e3964d0..ed1ea55 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -16,7 +16,7 @@ # directories. # define backupninja::rdiff( - $order = 90, $ensure = present, $user = false, $directory = false, $host = false, + $order = 90, $ensure = present, $user = false, $home = false, $host = false, $type = 'local', $exclude = [ "/home/*/.gnupg", "/home/*/.local/share/Trash", "/home/*/.Trash", "/home/*/.thumbnails", "/home/*/.beagle", "/home/*/.aMule", @@ -27,6 +27,7 @@ define backupninja::rdiff( $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true, $backuptag = false) { + $directory = "$home/rdiff-backup/" include backupninja::client case $type { 'remote': { @@ -34,7 +35,7 @@ define backupninja::rdiff( backupninja::server::sandbox { - "${user}-${name}": user => $user, host => $host, dir => $directory, + "${user}-${name}": user => $user, host => $host, dir => $home, manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir, authorized_keys_file => $authorized_keys_file, installuser => $installuser, backuptag => $backuptag -- cgit v1.2.3 From f55b76f4aafbea8e5a42ea7ff0dfe8ca9ff10bec Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Thu, 11 Dec 2008 10:12:24 -0500 Subject: allow arbitrary keyfiles to be distributed alongside the rdiff plugin --- manifests/rdiff.pp | 4 ++-- manifests/server.pp | 30 ++++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 10 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index ed1ea55..4abc9b2 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -24,7 +24,7 @@ define backupninja::rdiff( $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, + $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true, $key = false, $backuptag = false) { $directory = "$home/rdiff-backup/" @@ -36,7 +36,7 @@ define backupninja::rdiff( backupninja::server::sandbox { "${user}-${name}": user => $user, host => $host, dir => $home, - manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir, + manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir, key => $key, authorized_keys_file => $authorized_keys_file, installuser => $installuser, backuptag => $backuptag } diff --git a/manifests/server.pp b/manifests/server.pp index bf7e788..6033249 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -25,6 +25,7 @@ class backupninja::server { User <<| tag == "backupninja-$real_backupserver_tag" |>> File <<| tag == "backupninja-$real_backupserver_tag" |>> + Ssh_authorized_key <<| tag == "backupninja-$real_backupserver_tag" |>> package { [ "rsync", "rdiff-backup" ]: ensure => installed } @@ -32,7 +33,7 @@ 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, $backupkeys = false, $uid = false, + $ssh_dir = false, $authorized_keys_file = false, $key = false, $key_type = 'ssh-dss', $backupkeys = false, $uid = false, $gid = "backupninjas", $backuptag = false) { @@ -83,13 +84,26 @@ class backupninja::server { } } } - @@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", - } + 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", + } + } + 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", + } + } + } case $uid { false: { @@user { "$real_user": -- cgit v1.2.3 From b27f528d43b40105af2e34d066d2f54c5e6a1dcb Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Tue, 6 Jan 2009 16:49:02 -0500 Subject: send the fqdn, not the specified host, to the sandbox so that it knows for which host it's being configured --- manifests/rdiff.pp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 4abc9b2..0228a06 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -27,6 +27,11 @@ define backupninja::rdiff( $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true, $key = false, $backuptag = false) { + $real_backuptag = $backuptag ? { + false => $host, + default => $backuptag + } + $directory = "$home/rdiff-backup/" include backupninja::client case $type { @@ -35,10 +40,10 @@ define backupninja::rdiff( backupninja::server::sandbox { - "${user}-${name}": user => $user, host => $host, dir => $home, + "${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 => $backuptag + backuptag => $real_backuptag } backupninja::client::key -- cgit v1.2.3 From a0ed0c866d139127393223e490b85709e6fdc50b Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Wed, 14 Jan 2009 19:02:53 -0500 Subject: default backup tag to fqdn, not specified host --- manifests/rdiff.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 0228a06..ee99821 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -28,7 +28,7 @@ define backupninja::rdiff( $backuptag = false) { $real_backuptag = $backuptag ? { - false => $host, + false => $fqdn, default => $backuptag } @@ -40,7 +40,7 @@ define backupninja::rdiff( backupninja::server::sandbox { - "${user}-${name}": user => $user, host => $fqdn, dir => $home, + "${user}-${name}": user => $user, host => $host, 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 -- cgit v1.2.3 From f6cdb278a75088a38b18a565563e7900321b925b Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Wed, 14 Jan 2009 22:42:50 -0500 Subject: revert part of last commit: the backuptag is really based on the host provided to the rdiff command and the host provided to the sandbox is the fqdn of the server --- manifests/rdiff.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index ee99821..0228a06 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -28,7 +28,7 @@ define backupninja::rdiff( $backuptag = false) { $real_backuptag = $backuptag ? { - false => $fqdn, + false => $host, default => $backuptag } @@ -40,7 +40,7 @@ define backupninja::rdiff( backupninja::server::sandbox { - "${user}-${name}": user => $user, host => $host, dir => $home, + "${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 -- cgit v1.2.3 From e7009976eeab68bb1a68817881bcb1936960157d Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Sat, 17 Jan 2009 18:24:25 -0500 Subject: fix resource tag exported from rdiff resources, install rdiff in the rdiff-backup define --- manifests/rdiff.pp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 0228a06..9c81289 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -28,7 +28,7 @@ define backupninja::rdiff( $backuptag = false) { $real_backuptag = $backuptag ? { - false => $host, + false => "backupninja-$host", default => $backuptag } @@ -61,5 +61,6 @@ define backupninja::rdiff( mode => 0600, require => File["${backupninja::client::configdir}"] } + package { "rdiff-backup": ensure => installed } } -- cgit v1.2.3 From 245e6bde0c4c4a24f6b169aa88aaf0ff038241ac Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Mon, 27 Apr 2009 15:22:11 -0400 Subject: always use force, use backports for rdiff-backup in etch so we always use lenny's version --- manifests/rdiff.pp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 9c81289..e3e429b 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -23,7 +23,7 @@ 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, + $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) { @@ -61,6 +61,14 @@ define backupninja::rdiff( mode => 0600, require => File["${backupninja::client::configdir}"] } - package { "rdiff-backup": ensure => installed } + 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 } } -- cgit v1.2.3 From 77ca6deb7a3a194ffeeb4c3a5cf0855bd06a0ae9 Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Tue, 16 Jun 2009 10:52:14 -0400 Subject: add extras flag to add arbitrary options to rdiff configuration --- manifests/rdiff.pp | 2 +- templates/rdiff.conf.erb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index e3e429b..8e0e769 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -25,7 +25,7 @@ define backupninja::rdiff( "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ], $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) + $backuptag = false, $extras = false) { $real_backuptag = $backuptag ? { false => "backupninja-$host", diff --git a/templates/rdiff.conf.erb b/templates/rdiff.conf.erb index 0e19125..99bda4e 100644 --- a/templates/rdiff.conf.erb +++ b/templates/rdiff.conf.erb @@ -5,6 +5,8 @@ <%= 'options = ' + options if options %> +<%= extras if extras %> + [source] type = local <%= 'keep = ' + keep if keep %> -- cgit v1.2.3 From 409c13a31f57ea6fff1bbfb669741c2128111d2e Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Tue, 20 Oct 2009 19:28:26 -0400 Subject: fix directory --- manifests/rdiff.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 1d171b2..bcaee51 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -32,7 +32,6 @@ define backupninja::rdiff( default => $backuptag } - $directory = "$home/rdiff-backup/" include backupninja::client::defaults case $type { @@ -40,13 +39,14 @@ define backupninja::rdiff( case $host { false: { err("need to define a host for remote backups!") } } $real_home = $home ? { - false => $directory, + false => "/home/${user}-${name}", default => $home, } + $directory = "$real_home/rdiff-backup/" backupninja::server::sandbox { - "${user}-${name}": user => $user, host => $fqdn, dir => $home, + "${user}-${name}": user => $user, host => $fqdn, dir => $real_home, manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir, key => $key, authorized_keys_file => $authorized_keys_file, installuser => $installuser, backuptag => $real_backuptag, keytype => $backupkeytype, backupkeys => $backupkeystore, -- cgit v1.2.3 From 222ebf64d1f0f54120c510ce408a946bb08ce791 Mon Sep 17 00:00:00 2001 From: Antoine Beaupre Date: Tue, 20 Oct 2009 20:05:31 -0400 Subject: move the tag where it belongs (in remote) --- manifests/rdiff.pp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index bcaee51..c9363be 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -27,17 +27,16 @@ define backupninja::rdiff( $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true, $key = false, $backuptag = false, $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false) { - $real_backuptag = $backuptag ? { - false => "backupninja-$host", - default => $backuptag - } - include backupninja::client::defaults case $type { 'remote': { case $host { false: { err("need to define a host for remote backups!") } } - + $real_backuptag = $backuptag ? { + false => "backupninja-$host", + default => $backuptag + } + $real_home = $home ? { false => "/home/${user}-${name}", default => $home, -- cgit v1.2.3 From b380f1de1fe62d34f0788fedfb53c1354b0a31a3 Mon Sep 17 00:00:00 2001 From: anarcat Date: Mon, 7 Dec 2009 12:08:15 -0500 Subject: use the client classes for dependencies instead of directly defining packages --- manifests/maildir.pp | 3 +-- manifests/rdiff.pp | 11 +---------- 2 files changed, 2 insertions(+), 12 deletions(-) (limited to 'manifests/rdiff.pp') diff --git a/manifests/maildir.pp b/manifests/maildir.pp index 1427af1..ab7ff55 100644 --- a/manifests/maildir.pp +++ b/manifests/maildir.pp @@ -22,7 +22,7 @@ define backupninja::maildir( $remove = false, $multiconnection = yes, $keepdaily='4', $keepweekly='2', $keepmonthly='2') { - include backupninja::client::defaults + include backupninja::client::maildir case $srcdir { false: { err("need to define a source directory to backup!") } } case $destdir { false: { err("need to define a destination directory to backup!") } } @@ -38,5 +38,4 @@ define backupninja::maildir( mode => 0600, require => File["${backupninja::client::defaults::configdir}"] } - package { rsync: ensure => installed } } diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index c9363be..2624ecd 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -27,7 +27,7 @@ define backupninja::rdiff( $ssh_dir = false, $authorized_keys_file = false, $installuser = true, $installkey = true, $key = false, $backuptag = false, $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false) { - include backupninja::client::defaults + include backupninja::client::rdiff-backup case $type { 'remote': { @@ -68,14 +68,5 @@ define backupninja::rdiff( mode => 0600, 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 } } -- cgit v1.2.3