diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/client.pp | 18 | ||||
-rw-r--r-- | manifests/dup.pp | 2 | ||||
-rw-r--r-- | manifests/rdiff.pp | 23 | ||||
-rw-r--r-- | manifests/server.pp | 84 |
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" + } } } } |