aboutsummaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/client.pp18
-rw-r--r--manifests/dup.pp2
-rw-r--r--manifests/rdiff.pp23
-rw-r--r--manifests/server.pp84
4 files changed, 74 insertions, 53 deletions
diff --git a/manifests/client.pp b/manifests/client.pp
index ef449f5..c3d186d 100644
--- a/manifests/client.pp
+++ b/manifests/client.pp
@@ -72,14 +72,18 @@ class backupninja::client {
case $install_key {
true: {
- file { "${backupninja::client::real_keydestination}":
- ensure => directory,
- mode => 0700, owner => $key_owner, group => $key_group,
+ if !defined(File["${backupninja::client::real_keydestination}"]) {
+ file { "${backupninja::client::real_keydestination}":
+ ensure => directory,
+ mode => 0700, owner => $key_owner, group => $key_group,
+ }
}
- file { "${backupninja::client::real_keydestination}/id_${key_type}":
- source => "${key_store}/${real_user}_id_${key_type}",
- mode => 0400, owner => $key_owner, group => $key_group,
- require => File["${backupninja::client::real_keydestination}"],
+ if !defined(File["${backupninja::client::real_keydestination/id_${key_type}"]) {
+ file { "${backupninja::client::real_keydestination}/id_${key_type}":
+ source => "${key_store}/${real_user}_id_${key_type}",
+ mode => 0400, owner => $key_owner, group => $key_group,
+ require => File["${backupninja::client::real_keydestination}"],
+ }
}
}
}
diff --git a/manifests/dup.pp b/manifests/dup.pp
index 61491c6..9b554dc 100644
--- a/manifests/dup.pp
+++ b/manifests/dup.pp
@@ -75,7 +75,7 @@ define backupninja::duplicity( $order = 90,
$destuser = false,
# configs to backupninja client
$backupkeystore = false,
- $backupkeytype = false,
+ $backupkeytype = '',
# options to backupninja server sandbox
$ssh_dir_manage = true,
$ssh_dir = false,
diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp
index e3964d0..2eb1d9b 100644
--- a/manifests/rdiff.pp
+++ b/manifests/rdiff.pp
@@ -25,25 +25,32 @@ define backupninja::rdiff(
"/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)
+ $backuptag = false, $home = false, $backupkeytype = '')
{
include backupninja::client
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 => $directory,
+ "${user}-${name}": user => $user, host => $host, dir => $real_home,
manage_ssh_dir => $ssh_dir_manage, ssh_dir => $ssh_dir,
authorized_keys_file => $authorized_keys_file, installuser => $installuser,
- backuptag => $backuptag
+ backuptag => $backuptag, keytype => $backupkeytype,
}
-
- backupninja::client::key
- {
- "${user}-${name}": user => $user, host => $host,
- installkey => $installkey
+
+ if !defined(Backupninja::client::key["${user}-${name}"]) {
+ backupninja::client::key
+ {
+ "${user}-${name}": user => $user, host => $host,
+ installkey => $installkey
+ }
}
}
}
diff --git a/manifests/server.pp b/manifests/server.pp
index 213022b..790c931 100644
--- a/manifests/server.pp
+++ b/manifests/server.pp
@@ -63,57 +63,67 @@ class backupninja::server {
false => "backupninja-$real_host",
default => $backuptag,
}
-
- @@file { "$real_dir":
- ensure => directory,
- mode => 0750, owner => $user, group => 0,
- tag => "$real_backuptag",
+
+ if !defined(File["$real_dir"]) {
+ @@file { "$real_dir":
+ ensure => directory,
+ mode => 0750, owner => $user, group => 0,
+ tag => "$real_backuptag",
+ }
}
case $installuser {
true: {
case $manage_ssh_dir {
true: {
- @@file { "${real_ssh_dir}":
- ensure => directory,
- mode => 0700, owner => $user, group => 0,
- require => 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"],
+ tag => "$real_backuptag",
+ }
}
}
}
- @@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",
+ 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 $uid {
false: {
- @@user { "$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'],
+ tag => "$real_backuptag"
+ }
}
}
default: {
- @@user { "$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"]) {
+ @@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"
+ }
}
}
}