summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/client.pp11
-rw-r--r--manifests/dup.pp28
-rw-r--r--manifests/rdiff.pp3
3 files changed, 30 insertions, 12 deletions
diff --git a/manifests/client.pp b/manifests/client.pp
index 8368eb4..c3d186d 100644
--- a/manifests/client.pp
+++ b/manifests/client.pp
@@ -109,3 +109,14 @@ class backupninja::client::rdiff_backup inherits backupninja::client {
}
}
}
+
+class backupninja::client::duplicity inherits backupninja::client {
+
+ if !defined(Package["duplicity"]) {
+ if $duplicity_ensure_version == '' { $duplicity_ensure_version = 'installed' }
+ package { 'duplicity':
+ ensure => $duplicity_ensure_version,
+ }
+ }
+}
+
diff --git a/manifests/dup.pp b/manifests/dup.pp
index f12fc0f..5e58c2b 100644
--- a/manifests/dup.pp
+++ b/manifests/dup.pp
@@ -30,21 +30,25 @@
#
# Some notes about this handler:
#
+# - When specifying a password, be sure to enclose it in single quotes,
+# this is particularly important if you have any special characters, such
+# as a $ which puppet will attempt to interpret resulting in a different
+# password placed in the file than you expect!
# - 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", #
+ $options = false,
+ $nicelevel = false,
+ $testconnect = false,
+ $tmpdir = false,
# [gpg]
- $sign = "no",
+ $sign = false,
$encryptkey = false,
$signkey = false,
- $password = "a_very_complicated_passphrase",
+ $password = false,
# [source]
$include = [ "/var/spool/cron/crontabs",
"/var/backups",
@@ -67,10 +71,10 @@ define backupninja::duplicity( $order = 90,
$vsinclude = false,
# [dest]
$incremental = "yes",
- $keep = 60,
- $bandwithlimit = "0",
+ $keep = false,
+ $bandwithlimit = false,
$sshoptions = false,
- $destdir = "/backups",
+ $destdir = false,
$desthost = false,
$destuser = false,
# configs to backupninja client
@@ -84,13 +88,13 @@ define backupninja::duplicity( $order = 90,
$backuptag = false,
# key options
$installkey = true ) {
- # needed packages
- package { "duplicity": ensure => installed }
# the client with configs for this machine
include backupninja::client
- case $host { false: { err("need to define a host for remote backups!") } }
+ case $desthost { false: { err("need to define a destination host for remote backups!") } }
+ case $destdir { false: { err("need to define a destination directory for remote backups!") } }
+ case $password { false: { err("a password is necessary either to unlock the GPG key, or for symmetric encryption!") } }
# guarantees there's a configured backup space for this backup
backupninja::server::sandbox { "${user}-${name}":
diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp
index 579071b..98a74b2 100644
--- a/manifests/rdiff.pp
+++ b/manifests/rdiff.pp
@@ -28,6 +28,9 @@ define backupninja::rdiff(
$backuptag = false, $home = false, $backupkeytype = '')
{
include backupninja::client
+
+ 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!") } }