From f3faa38845cbf19292005d6911b3fddaf7589508 Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 13 Jul 2009 02:36:34 -0300 Subject: adding duplicity handler. --- manifests/dup.pp | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 manifests/dup.pp (limited to 'manifests/dup.pp') diff --git a/manifests/dup.pp b/manifests/dup.pp new file mode 100644 index 0000000..11fca07 --- /dev/null +++ b/manifests/dup.pp @@ -0,0 +1,116 @@ +# Run duplicity-backup as part of a backupninja run. +# +# Valid attributes for this type are: +# +# order: +# +# The prefix to give to the handler config filename, to set order in +# which the actions are executed during the backup run. +# +# ensure: +# +# Allows you to delete an entry if you don't want it any more (but be +# sure to keep the configdir, name, and order the same, so that we can +# find the correct file to remove). +# +# options, nicelevel, testconnect, tmpdir, sign, encryptkey, signkey, +# password, include, exclude, vsinclude, incremental, keep, bandwithlimit, +# sshoptions, destdir, desthost, desuser: +# +# As defined in the backupninja documentation. The options will be +# placed in the correct sections automatically. The include and +# exclude options should be given as arrays if you want to specify +# multiple directories. +# +# directory, ssh_dir_manage, ssh_dir, authorized_keys_file, installuser, +# installkey, backuptag: +# +# Options for the bakupninja::server::sandbox define, check that +# definition for more info. +# +# Some notes about this handler: +# +# - There's no support for a 'local' type in backupninja's duplicity +# handler on version 0.9.6-4, which is the version available in stable and +# testing debian repositories by the time of this writing. +define backupninja::duplicity( $order = 90, + $ensure = present, + # options to the config file + $options = false, # + $nicelevel = 0, # + $testconnect = "yes", # + $tmpdir = "/var/tmp/duplicity", # + # [gpg] + $sign = "no", + $encryptkey = false, + $signkey = false, + $password = "a_very_complicated_passphrase", + # [source] + $include = [ "/var/spool/cron/crontabs", + "/var/backups", + "/etc", + "/root", + "/home", + "/usr/local/*bin", + "/var/lib/dpkg/status*" ], + $exclude = [ "/home/*/.gnupg", + "/home/*/.local/share/Trash", + "/home/*/.Trash", + "/home/*/.thumbnails", + "/home/*/.beagle", + "/home/*/.aMule", + "/home/*/.gnupg", + "/home/*/.gpg", + "/home/*/.ssh", + "/home/*/gtk-gnutella-downloads"], + $vsinclude = false, + # [dest] + $incremental = "yes", + $keep = 60, + $bandwithlimit = "128", + $sshoptions = false, + $destdir = "/backups", + $desthost = false, + $destuser = false, + # options to backupninja's module sandbox + $ssh_dir_manage = true, + $ssh_dir = false, + $authorized_keys_file = false, + $installuser = true, + $backuptag = false, + # key options + $installkey = true ) { + include backupninja::client + + case $host { false: { err("need to define a host for remote backups!") } } + + # guarantees there's a configured backup space for this backup + backupninja::server::sandbox { "${user}-${name}": + user => $destuser, + host => $desthost, + dir => $destdir, + manage_ssh_dir => $ssh_dir_manage, + ssh_dir => $ssh_dir, + authorized_keys_file => $authorized_keys_file, + installuser => $installuser, + backuptag => $backuptag, + } + + # the client's ssh key + backupninja::client::key { "${destuser}-${name}": + user => $destuser, + host => $desthost, + installkey => $installkey, + } + + # the backupninja rule for this duplicity backup + file { "${backupninja::client::configdir}/${order}_${name}.duplicity": + ensure => $ensure, + content => template('backupninja/dup.conf.erb'), + owner => root, + group => root, + mode => 0600, + require => File["${backupninja::client::configdir}"] + } +} + -- cgit v1.2.3 From bd948b3e87fb0b16dd598ad566077fc87ff1cbe8 Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 13 Jul 2009 03:40:09 -0300 Subject: some corrections to duplicity handler. --- manifests/dup.pp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'manifests/dup.pp') diff --git a/manifests/dup.pp b/manifests/dup.pp index 11fca07..610a2d0 100644 --- a/manifests/dup.pp +++ b/manifests/dup.pp @@ -62,17 +62,21 @@ define backupninja::duplicity( $order = 90, "/home/*/.gnupg", "/home/*/.gpg", "/home/*/.ssh", - "/home/*/gtk-gnutella-downloads"], + "/home/*/gtk-gnutella-downloads", + "/etc/ssh/*" ], $vsinclude = false, # [dest] $incremental = "yes", $keep = 60, - $bandwithlimit = "128", + $bandwithlimit = "0", $sshoptions = false, $destdir = "/backups", $desthost = false, $destuser = false, - # options to backupninja's module sandbox + # configs to backupninja client + $backupkeystore = false, + $backupkeytype = false, + # options to backupninja server sandbox $ssh_dir_manage = true, $ssh_dir = false, $authorized_keys_file = false, @@ -94,6 +98,7 @@ define backupninja::duplicity( $order = 90, authorized_keys_file => $authorized_keys_file, installuser => $installuser, backuptag => $backuptag, + backupkeys => $backupkeystore, } # the client's ssh key -- cgit v1.2.3 From fb99850d39a75c5a24ddd15dd237682de07271d3 Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 13 Jul 2009 04:35:33 -0300 Subject: adding backup-key-type to duplicity handler. --- manifests/dup.pp | 1 + 1 file changed, 1 insertion(+) (limited to 'manifests/dup.pp') diff --git a/manifests/dup.pp b/manifests/dup.pp index 610a2d0..0965c21 100644 --- a/manifests/dup.pp +++ b/manifests/dup.pp @@ -106,6 +106,7 @@ define backupninja::duplicity( $order = 90, user => $destuser, host => $desthost, installkey => $installkey, + keytype => $backupkeytype, } # the backupninja rule for this duplicity backup -- cgit v1.2.3 From 89853b4dcf8d93446a12527db64a5c36d3ff0a79 Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 13 Jul 2009 04:51:49 -0300 Subject: adding key type for duplicity. --- manifests/dup.pp | 1 + 1 file changed, 1 insertion(+) (limited to 'manifests/dup.pp') diff --git a/manifests/dup.pp b/manifests/dup.pp index 0965c21..8f34b8b 100644 --- a/manifests/dup.pp +++ b/manifests/dup.pp @@ -99,6 +99,7 @@ define backupninja::duplicity( $order = 90, installuser => $installuser, backuptag => $backuptag, backupkeys => $backupkeystore, + keytype => $backupkeytype, } # the client's ssh key -- cgit v1.2.3 From 73c59d37ff9f35abf4307fd243e4ed5ec9e78d97 Mon Sep 17 00:00:00 2001 From: drebs Date: Mon, 13 Jul 2009 05:28:25 -0300 Subject: fixing file extension from ".duplicity" to ".dup". --- manifests/dup.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'manifests/dup.pp') diff --git a/manifests/dup.pp b/manifests/dup.pp index 8f34b8b..170e53a 100644 --- a/manifests/dup.pp +++ b/manifests/dup.pp @@ -111,7 +111,7 @@ define backupninja::duplicity( $order = 90, } # the backupninja rule for this duplicity backup - file { "${backupninja::client::configdir}/${order}_${name}.duplicity": + file { "${backupninja::client::configdir}/${order}_${name}.dup": ensure => $ensure, content => template('backupninja/dup.conf.erb'), owner => root, -- cgit v1.2.3