From 6ed1f8dfe6b16f148dde641482709958bc393815 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 29 Dec 2009 17:06:26 -0200 Subject: Adding $subfolder parameter at backupninja::rdiff New $subfolder defaulting to rdiff-backup allow configuration of which inner folder from $home rdiff backup should keep backups. --- manifests/rdiff.pp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 38a975d..562d652 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -25,7 +25,8 @@ 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, $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false) + $backuptag = false, $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false, + $subfolder = 'rdiff-backup') { include backupninja::client::rdiff_backup @@ -41,7 +42,7 @@ define backupninja::rdiff( false => "/home/${user}-${name}", default => $home, } - $directory = "$real_home/rdiff-backup/" + $directory = "${real_home}/${subfolder}/" backupninja::server::sandbox { -- cgit v1.2.3 From 98e14e6257f9c15aee4994918ff2d069ed13752a Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 20 Feb 2010 00:56:54 -0200 Subject: Avoiding duplicate definition of ssh_authorized_key --- manifests/server.pp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index a0bcbf2..b6d16b1 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -139,15 +139,17 @@ class backupninja::server { } } default: { - @@ssh_authorized_key{ $real_user: - type => $keytype, - key => $key, - user => $real_user, - target => "${real_ssh_dir}/${real_authorized_keys_file}", - tag => "$real_backuptag", - require => User[$real_user], - } - } + if !defined(Ssh_autorized_key["$real_user"]) { + @@ssh_authorized_key{ "$real_user": + type => $keytype, + key => $key, + user => $real_user, + target => "${real_ssh_dir}/${real_authorized_keys_file}", + tag => "$real_backuptag", + require => User[$real_user], + } + } + } } case $uid { false: { @@ -160,7 +162,7 @@ class backupninja::server { managehome => true, shell => "/bin/sh", password => '*', - require => Group['backupninjas'], + require => Group['backupninjas'], tag => "$real_backuptag" } } @@ -176,7 +178,7 @@ class backupninja::server { managehome => true, shell => "/bin/sh", password => '*', - require => Group['backupninjas'], + require => Group['backupninjas'], tag => "$real_backuptag" } } -- cgit v1.2.3 From ead754fe1a36cafa88d5251f9561bec44d5aac1f Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 15:12:30 -0300 Subject: Using namevars to deal with multiple backup destinations --- manifests/server.pp | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index b6d16b1..382764b 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -105,31 +105,34 @@ class backupninja::server { nagios2::passive_service { "backups-${name}": nagios2_host_name => $real_host, nagios2_description => $real_nagios2_description, servicegroups => "backups" } } - if !defined(File["$real_dir"]) { - @@file { "$real_dir": + if !defined(File["$real_backuptag-$real_dir"]) { + @@file { "$real_backuptag-$real_dir": + path => "$real_dir", ensure => directory, - mode => 0750, owner => $real_user, group => 0, - tag => "$real_backuptag", + mode => 0750, owner => $real_user, group => 0, + tag => "$real_backuptag", } } case $installuser { true: { case $manage_ssh_dir { true: { - if !defined(File["$real_ssh_dir"]) { - @@file { "${real_ssh_dir}": - ensure => directory, - mode => 0700, owner => $real_user, group => 0, + if !defined(File["$real_backuptag-$real_ssh_dir"]) { + @@file { "$real_backuptag-${real_ssh_dir}": + path => "${real_ssh_dir}", + ensure => directory, + mode => 0700, owner => $real_user, group => 0, require => [User[$real_user], File["$real_dir"]], - tag => "$real_backuptag", + tag => "$real_backuptag", } } } } case $key { false: { - if !defined(File["${real_ssh_dir}/${real_authorized_keys_file}"]) { - @@file { "${real_ssh_dir}/${real_authorized_keys_file}": + if !defined(File["$real_backuptag-${real_ssh_dir}/${real_authorized_keys_file}"]) { + @@file { "$real_backuptag-${real_ssh_dir}/${real_authorized_keys_file}": + path => "${real_ssh_dir}/${real_authorized_keys_file", ensure => present, mode => 0644, owner => 0, group => 0, source => "$real_backupkeys/${real_user}_id_${keytype}.pub", @@ -139,8 +142,9 @@ class backupninja::server { } } default: { - if !defined(Ssh_autorized_key["$real_user"]) { - @@ssh_authorized_key{ "$real_user": + if !defined(Ssh_autorized_key["$real_backuptag-$real_user"]) { + @@ssh_authorized_key{ "$real_backuptag-$real_user": + name => "$real_user", type => $keytype, key => $key, user => $real_user, @@ -153,8 +157,9 @@ class backupninja::server { } case $uid { false: { - if !defined(User["$real_user"]) { - @@user { "$real_user": + if !defined(User["$real_backuptag-$real_user"]) { + @@user { "$real_backuptag-$real_user": + name => "$real_user", ensure => "present", gid => "$gid", comment => "$name backup sandbox", @@ -168,8 +173,9 @@ class backupninja::server { } } default: { - if !defined(User["$real_user"]) { - @@user { "$real_user": + if !defined(User["$real_backuptag-$real_user"]) { + @@user { "$real_backuptag-$real_user": + name => "$real_user", ensure => "present", uid => "$uid", gid => "$gid", -- cgit v1.2.3 From 84bf61e693eceecefb9aa3dcf3a3da44cef4a2a2 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 16:08:44 -0300 Subject: Reverting last change and trying exported resources override instead --- manifests/server.pp | 70 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 382764b..157827a 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -105,34 +105,41 @@ class backupninja::server { nagios2::passive_service { "backups-${name}": nagios2_host_name => $real_host, nagios2_description => $real_nagios2_description, servicegroups => "backups" } } - if !defined(File["$real_backuptag-$real_dir"]) { - @@file { "$real_backuptag-$real_dir": - path => "$real_dir", + if !defined(File["$real_dir"]) { + @@file { "$real_dir": ensure => directory, - mode => 0750, owner => $real_user, group => 0, - tag => "$real_backuptag", + mode => 0750, owner => $real_user, group => 0, + tag => "$real_backuptag", + } + } + else { + File <| title == "$real_dir" |> { + tag +> "$real_backuptag", } } case $installuser { true: { case $manage_ssh_dir { true: { - if !defined(File["$real_backuptag-$real_ssh_dir"]) { - @@file { "$real_backuptag-${real_ssh_dir}": - path => "${real_ssh_dir}", - ensure => directory, - mode => 0700, owner => $real_user, group => 0, + if !defined(File["$real_ssh_dir"]) { + @@file { "${real_ssh_dir}": + ensure => directory, + mode => 0700, owner => $real_user, group => 0, require => [User[$real_user], File["$real_dir"]], - tag => "$real_backuptag", + tag => "$real_backuptag", + } + } + else { + File <| title == "$real_ssh_dir" |> { + tag +> "$real_backuptag", } } } } case $key { false: { - if !defined(File["$real_backuptag-${real_ssh_dir}/${real_authorized_keys_file}"]) { - @@file { "$real_backuptag-${real_ssh_dir}/${real_authorized_keys_file}": - path => "${real_ssh_dir}/${real_authorized_keys_file", + 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/${real_user}_id_${keytype}.pub", @@ -140,11 +147,15 @@ class backupninja::server { tag => "$real_backuptag", } } + else { + File <| title == "${real_ssh_dir}/${real_authorized_keys_file}" |> { + tag +> "$real_backuptag", + } + } } default: { - if !defined(Ssh_autorized_key["$real_backuptag-$real_user"]) { - @@ssh_authorized_key{ "$real_backuptag-$real_user": - name => "$real_user", + if !defined(Ssh_autorized_key["$real_user"]) { + @@ssh_authorized_key{ "$real_user": type => $keytype, key => $key, user => $real_user, @@ -153,13 +164,17 @@ class backupninja::server { require => User[$real_user], } } + else { + Ssh_authorized_key <| title == "$real_user" |> { + tag +> "$real_backuptag", + } + } } } case $uid { false: { - if !defined(User["$real_backuptag-$real_user"]) { - @@user { "$real_backuptag-$real_user": - name => "$real_user", + if !defined(User["$real_user"]) { + @@user { "$real_user": ensure => "present", gid => "$gid", comment => "$name backup sandbox", @@ -171,11 +186,15 @@ class backupninja::server { tag => "$real_backuptag" } } + else { + User <| title == "$real_user" |> { + tag +> "$real_backuptag", + } + } } default: { - if !defined(User["$real_backuptag-$real_user"]) { - @@user { "$real_backuptag-$real_user": - name => "$real_user", + if !defined(User["$real_user"]) { + @@user { "$real_user": ensure => "present", uid => "$uid", gid => "$gid", @@ -188,6 +207,11 @@ class backupninja::server { tag => "$real_backuptag" } } + else { + User <| title == "$real_user" |> { + tag +> "$real_backuptag", + } + } } } } -- cgit v1.2.3 From b17704f7cd7897d100d4ebcf6f068858d626e4a5 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 16:16:54 -0300 Subject: Trying another method to override an exported resource if already defined --- manifests/server.pp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 157827a..ea7d327 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -113,7 +113,7 @@ class backupninja::server { } } else { - File <| title == "$real_dir" |> { + File["$real_dir"] { tag +> "$real_backuptag", } } @@ -130,7 +130,7 @@ class backupninja::server { } } else { - File <| title == "$real_ssh_dir" |> { + File["$real_ssh_dir"] { tag +> "$real_backuptag", } } @@ -148,7 +148,7 @@ class backupninja::server { } } else { - File <| title == "${real_ssh_dir}/${real_authorized_keys_file}" |> { + File["${real_ssh_dir}/${real_authorized_keys_file}"] { tag +> "$real_backuptag", } } @@ -165,7 +165,7 @@ class backupninja::server { } } else { - Ssh_authorized_key <| title == "$real_user" |> { + Ssh_authorized_key["$real_user"] { tag +> "$real_backuptag", } } @@ -187,7 +187,7 @@ class backupninja::server { } } else { - User <| title == "$real_user" |> { + User["$real_user"] { tag +> "$real_backuptag", } } @@ -208,7 +208,7 @@ class backupninja::server { } } else { - User <| title == "$real_user" |> { + User["$real_user"] { tag +> "$real_backuptag", } } -- cgit v1.2.3 From e188dd8faa0e3b5cf033abf2e5eab000c06dc889 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 16:49:46 -0300 Subject: Trying a different approach to realize exported resources --- manifests/server.pp | 48 ++++++++++++++---------------------------------- 1 file changed, 14 insertions(+), 34 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index ea7d327..40e9004 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,3 +1,9 @@ +define backupninja_server_realize($host) { + User <<| tag == "backupninja-$host" |>> + File <<| tag == "backupninja-$host" |>> + Ssh_authorized_key <<| tag == "backupninja-$host" |>> +} + class backupninja::server { $real_backupdir = $backupdir ? { @@ -46,9 +52,8 @@ class backupninja::server { } } - User <<| tag == "backupninja-$real_backupserver_tag" |>> - File <<| tag == "backupninja-$real_backupserver_tag" |>> - Ssh_authorized_key <<| tag == "backupninja-$real_backupserver_tag" |>> + # collect all resources from hosted backups + Backupninja_server_realize <| tag == "$real_backupserver_tag" |> if !defined(Package["rsync"]) { if $rsync_ensure_version == '' { $rsync_ensure_version = 'installed' } @@ -91,7 +96,7 @@ class backupninja::server { default => $authorized_keys_file, } $real_backuptag = $backuptag ? { - false => "backupninja-$real_host", + false => "backupninja-$fqdn", default => $backuptag, } @@ -105,6 +110,11 @@ class backupninja::server { nagios2::passive_service { "backups-${name}": nagios2_host_name => $real_host, nagios2_description => $real_nagios2_description, servicegroups => "backups" } } + @@backupninja_server_realize { "${fqdn}-${real_host}": + host => $fqdn, + tag => $real_host, + } + if !defined(File["$real_dir"]) { @@file { "$real_dir": ensure => directory, @@ -112,11 +122,6 @@ class backupninja::server { tag => "$real_backuptag", } } - else { - File["$real_dir"] { - tag +> "$real_backuptag", - } - } case $installuser { true: { case $manage_ssh_dir { @@ -129,11 +134,6 @@ class backupninja::server { tag => "$real_backuptag", } } - else { - File["$real_ssh_dir"] { - tag +> "$real_backuptag", - } - } } } case $key { @@ -147,11 +147,6 @@ class backupninja::server { tag => "$real_backuptag", } } - else { - File["${real_ssh_dir}/${real_authorized_keys_file}"] { - tag +> "$real_backuptag", - } - } } default: { if !defined(Ssh_autorized_key["$real_user"]) { @@ -164,11 +159,6 @@ class backupninja::server { require => User[$real_user], } } - else { - Ssh_authorized_key["$real_user"] { - tag +> "$real_backuptag", - } - } } } case $uid { @@ -186,11 +176,6 @@ class backupninja::server { tag => "$real_backuptag" } } - else { - User["$real_user"] { - tag +> "$real_backuptag", - } - } } default: { if !defined(User["$real_user"]) { @@ -207,11 +192,6 @@ class backupninja::server { tag => "$real_backuptag" } } - else { - User["$real_user"] { - tag +> "$real_backuptag", - } - } } } } -- cgit v1.2.3 From 24f12a74d643f44212d16f8da521ca0a50acfc86 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 17:01:16 -0300 Subject: Fixing backupninja::server::sandbox parameter on backupninja::rdiff --- manifests/rdiff.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index f750e23..7f51b50 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -46,7 +46,7 @@ define backupninja::rdiff( backupninja::server::sandbox { - "${user}-${name}": user => $user, host => $fqdn, dir => $real_home, + "${user}-${name}": user => $user, host => $host, 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 c0e70d61d406b4e8325d9cd8f5b2336b46d48b8c Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 17:11:52 -0300 Subject: Checking for backupninja_server_realize definition / comments --- manifests/server.pp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 40e9004..962c416 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -1,3 +1,4 @@ +# this define realizes all needed resources for a hosted backup define backupninja_server_realize($host) { User <<| tag == "backupninja-$host" |>> File <<| tag == "backupninja-$host" |>> @@ -110,9 +111,12 @@ class backupninja::server { nagios2::passive_service { "backups-${name}": nagios2_host_name => $real_host, nagios2_description => $real_nagios2_description, servicegroups => "backups" } } - @@backupninja_server_realize { "${fqdn}-${real_host}": - host => $fqdn, - tag => $real_host, + if !defined(Backupninja_server_realize["${fqdn}-${real_host}"]) { + # this defines just maps that $real_host host backups for $fdqn + @@backupninja_server_realize { "${fqdn}-${real_host}": + host => $fqdn, + tag => $real_host, + } } if !defined(File["$real_dir"]) { -- cgit v1.2.3 From d6f5ad38919445bc5e611389f83ac7e2335ec9dc Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 17:33:26 -0300 Subject: Testing without checking duplicate definition of backupninja_server_realize --- manifests/server.pp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 962c416..3ef97ce 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -111,12 +111,10 @@ class backupninja::server { nagios2::passive_service { "backups-${name}": nagios2_host_name => $real_host, nagios2_description => $real_nagios2_description, servicegroups => "backups" } } - if !defined(Backupninja_server_realize["${fqdn}-${real_host}"]) { - # this defines just maps that $real_host host backups for $fdqn - @@backupninja_server_realize { "${fqdn}-${real_host}": - host => $fqdn, - tag => $real_host, - } + # this defines just maps that $real_host host backups for $fdqn + @@backupninja_server_realize { "${fqdn}@${real_host}": + host => $fqdn, + tag => $real_host, } if !defined(File["$real_dir"]) { -- cgit v1.2.3 From e736c22f347c572eae79568a6d0cdde996207496 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 17:40:37 -0300 Subject: Adding back duplicate definition check for backupninja_server_realize --- manifests/server.pp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 3ef97ce..8337bcc 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -111,10 +111,12 @@ class backupninja::server { nagios2::passive_service { "backups-${name}": nagios2_host_name => $real_host, nagios2_description => $real_nagios2_description, servicegroups => "backups" } } - # this defines just maps that $real_host host backups for $fdqn - @@backupninja_server_realize { "${fqdn}@${real_host}": - host => $fqdn, - tag => $real_host, + if !defined(Backupninja_server_realize["${fqdn}@${real_host}"]) { + # this defines just maps that $real_host host backups for $fdqn + @@backupninja_server_realize { "${fqdn}@${real_host}": + host => $fqdn, + tag => $real_host, + } } if !defined(File["$real_dir"]) { -- cgit v1.2.3 From b70a3faa51ec8be1c69d15e9bfdbedad4358447b Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 17:50:00 -0300 Subject: Another change on backupninja::rdiff backuptag due to the introduction of backupninja_server_realize --- manifests/rdiff.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/rdiff.pp b/manifests/rdiff.pp index 7f51b50..847c319 100644 --- a/manifests/rdiff.pp +++ b/manifests/rdiff.pp @@ -34,7 +34,7 @@ define backupninja::rdiff( 'remote': { case $host { false: { err("need to define a host for remote backups!") } } $real_backuptag = $backuptag ? { - false => "backupninja-$host", + false => "backupninja-$fqdn", default => $backuptag } -- cgit v1.2.3 From 85c8fbe374670ebc615f42e7eec4e1c52258fcf2 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 5 Jun 2010 18:38:12 -0300 Subject: Minor fix at Backupninja_server_realize realization --- manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/server.pp b/manifests/server.pp index 8337bcc..46eadc8 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -54,7 +54,7 @@ class backupninja::server { } # collect all resources from hosted backups - Backupninja_server_realize <| tag == "$real_backupserver_tag" |> + Backupninja_server_realize <<| tag == "$real_backupserver_tag" |>> if !defined(Package["rsync"]) { if $rsync_ensure_version == '' { $rsync_ensure_version = 'installed' } -- cgit v1.2.3 From 7f3356e33789703c9ebcd8b1477e5c0d0b2b3feb Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 7 Jun 2010 23:55:42 -0300 Subject: Fixing user comments --- manifests/server.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 46eadc8..3114b92 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -171,7 +171,7 @@ class backupninja::server { @@user { "$real_user": ensure => "present", gid => "$gid", - comment => "$name backup sandbox", + comment => "$real_user backup sandbox", home => "$real_dir", managehome => true, shell => "/bin/sh", @@ -187,7 +187,7 @@ class backupninja::server { ensure => "present", uid => "$uid", gid => "$gid", - comment => "$name backup sandbox", + comment => "$real_user backup sandbox", home => "$real_dir", managehome => true, shell => "/bin/sh", -- cgit v1.2.3 From bee234d0a4e490b0531e1e23488c514dbae7d816 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 16 Aug 2010 11:47:01 -0300 Subject: Initial code for rsync handler --- manifests/client.pp | 10 ++++++ manifests/rsync.pp | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ templates/rsync.conf.erb | 44 +++++++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 manifests/rsync.pp create mode 100644 templates/rsync.conf.erb diff --git a/manifests/client.pp b/manifests/client.pp index 287b02f..3dbd711 100644 --- a/manifests/client.pp +++ b/manifests/client.pp @@ -151,3 +151,13 @@ class backupninja::client::sys inherits backupninja::client::defaults { default: {} } } + +class backupninja::client::rsync inherits backupninja::client::defaults { + + if !defined(Package["rsync"]) { + if $rsync_ensure_version == '' { $rsync_ensure_version = 'installed' } + package { 'rsync': + ensure => $rsync_ensure_version, + } + } +} diff --git a/manifests/rsync.pp b/manifests/rsync.pp new file mode 100644 index 0000000..2839b95 --- /dev/null +++ b/manifests/rsync.pp @@ -0,0 +1,86 @@ +# Run rsync as part of a backupninja run. +# Based on backupninja::rdiff + +define backupninja::rsync( + $order = 90, $ensure = present, $user = false, $home = false, $host = false, + $ssh_dir_manage = true, $ssh_dir = false, $authorized_keys_file = false + $installuser = true, $installkey = true, $key = false, $backuptag = false + $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false, + $nagios2_description = 'backups', $subfolder = 'rsync', + + $rm = false, $cp = false, $touch = false, $mv = false, $fsck = false, + + $log = false, $partition = false, $fscheck = false, $read_only = false, + $mountpoint = false, $backupdir = false, $format = false, $days = '5', + $keepdaily = false, $keepweekly = false, $keepmonthly = false, $lockfile = false, + $nicelevel = 0, $enable_mv_timestamp_bug = false, $tmp = false, $multiconnection = false, + + $from = 'local', $rsync = false, $rsync_options = false, + $testconnect = false, $protocol = false, $ssh = false, $port = false, + $bandwidthlimit = false, $remote_rsync = false, $id_file = false, + $batch = false, $filelist = false, $filelistbase = false, + + $exclude = [ "/home/*/.gnupg", "/home/*/.local/share/Trash", "/home/*/.Trash", + "/home/*/.thumbnails", "/home/*/.beagle", "/home/*/.aMule", + "/home/*/gtk-gnutella-downloads" ], + $include = [ "/var/spool/cron/crontabs", "/var/backups", "/etc", "/root", + "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ], + + $exclude_vserver = false, $numericids = false, $compress = false, + + $dest = false, $fakesuper = false, $batchname = false, + + $initscripts = false, $service = false) +{ + include backupninja::client::rsync + + case $dest { + 'remote': { + case $host { false: { err("need to define a host for remote backups!") } } + + $real_backuptag = $backuptag ? { + false => "backupninja-$fqdn", + default => $backuptag + } + + $real_home = $home ? { + false => "/home/${user}-${name}", + default => $home, + } + + $directory = "${real_home}/${subfolder}/" + + backupninja::server::sandbox { "${user}-${name}": + user => $user, + host => $host, + 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, + nagios2_description => $nagios2_description + } + + backupninja::client::key { "${user}-${name}": + user => $user, + host => $host, + installkey => $installkey, + keytype => $backupkeytype, + keystore => $backupkeystore, + } + } + } + + file { "${backupninja::client::defaults::configdir}/${order}_${name}.rsync": + ensure => $ensure, + content => template('backupninja/rsync.conf.erb'), + owner => root, + group => root, + mode => 0600, + require => File["${backupninja::client::defaults::configdir}"] + } +} diff --git a/templates/rsync.conf.erb b/templates/rsync.conf.erb new file mode 100644 index 0000000..8c61fc8 --- /dev/null +++ b/templates/rsync.conf.erb @@ -0,0 +1,44 @@ +# This configuration file was auto-generated by the Puppet configuration +# management system. Any changes you make to this file will be overwritten +# the next time Puppet runs. Please make configuration changes to this +# service in Puppet. + +[general] +<%- %w{log partition fscheck read_only mountpoint backupdir format days keepdaily keepweekly keepmonthly lockfile nicelevel enable_mv_timestamp_bug, tmp, multiconnection}.each do |v| + if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> +<%= v + ' = ' + instance_variable_get("@#{v}").to_s %> +<%- + end +end -%> + +[source] +<%- %w{from host port user testconnect include exclude ssh protocol rsync rssync_options exclude_vserver, numericids, compress, bandwidthlimit, remote_rsync, id_file, batch, batchbase, filelist, filelistbase}.each do |v| + if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> +<%= v + ' = ' + instance_variable_get("@#{v}").to_s %> +<%- + end +end -%> + +[dest] +<%- %w{dest, testconnect, ssh, protocol, numericids, compress, host, port, user, id_file, bandwidthlimit, remote_rsync, batch, batchbase, fakesuper}.each do |v| + if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> +<%= v + ' = ' + instance_variable_get("@#{v}").to_s %> +<%- + end +end -%> + +[services] +<%- %w{initscripts, service}.each do |v| + if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> +<%= v + ' = ' + instance_variable_get("@#{v}").to_s %> +<%- + end +end -%> + +[system] +<%- %w{rm, cp, touch, mv fsck}.each do |v| + if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> +<%= v + ' = ' + instance_variable_get("@#{v}").to_s %> +<%- + end +end -%> -- cgit v1.2.3 From 06b5fbe33fabfa97755a840119368440ab258365 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 16 Aug 2010 14:48:38 -0300 Subject: Minor fixes --- manifests/rsync.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/rsync.pp b/manifests/rsync.pp index 2839b95..7d925f2 100644 --- a/manifests/rsync.pp +++ b/manifests/rsync.pp @@ -3,8 +3,8 @@ define backupninja::rsync( $order = 90, $ensure = present, $user = false, $home = false, $host = false, - $ssh_dir_manage = true, $ssh_dir = false, $authorized_keys_file = false - $installuser = true, $installkey = true, $key = false, $backuptag = false + $ssh_dir_manage = true, $ssh_dir = false, $authorized_keys_file = false, + $installuser = true, $installkey = true, $key = false, $backuptag = false, $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false, $nagios2_description = 'backups', $subfolder = 'rsync', -- cgit v1.2.3 From c5220c6efb0ae15739c9a78f45a828b19435e31c Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 16 Aug 2010 16:50:24 -0300 Subject: Right now just local origin and remote destination is supported --- manifests/rsync.pp | 1 + templates/rsync.conf.erb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/manifests/rsync.pp b/manifests/rsync.pp index 7d925f2..bcd1d1b 100644 --- a/manifests/rsync.pp +++ b/manifests/rsync.pp @@ -1,5 +1,6 @@ # Run rsync as part of a backupninja run. # Based on backupninja::rdiff +# Right now just local origin and remote destination is supported. define backupninja::rsync( $order = 90, $ensure = present, $user = false, $home = false, $host = false, diff --git a/templates/rsync.conf.erb b/templates/rsync.conf.erb index 8c61fc8..594683c 100644 --- a/templates/rsync.conf.erb +++ b/templates/rsync.conf.erb @@ -12,7 +12,7 @@ end -%> [source] -<%- %w{from host port user testconnect include exclude ssh protocol rsync rssync_options exclude_vserver, numericids, compress, bandwidthlimit, remote_rsync, id_file, batch, batchbase, filelist, filelistbase}.each do |v| +<%- %w{from testconnect include exclude ssh protocol rsync rssync_options exclude_vserver, numericids, compress, bandwidthlimit, remote_rsync, id_file, batch, batchbase, filelist, filelistbase}.each do |v| if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> <%= v + ' = ' + instance_variable_get("@#{v}").to_s %> <%- -- cgit v1.2.3 From 06412e03431c2ed125481486d34f6e7efd09f1df Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 16 Aug 2010 21:56:13 -0300 Subject: Right now just local origin and remote destination is supported (2) --- manifests/rsync.pp | 22 ++++++++++++---------- templates/rsync.conf.erb | 2 +- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/manifests/rsync.pp b/manifests/rsync.pp index bcd1d1b..64a42ba 100644 --- a/manifests/rsync.pp +++ b/manifests/rsync.pp @@ -9,29 +9,31 @@ define backupninja::rsync( $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false, $nagios2_description = 'backups', $subfolder = 'rsync', - $rm = false, $cp = false, $touch = false, $mv = false, $fsck = false, - + # general $log = false, $partition = false, $fscheck = false, $read_only = false, $mountpoint = false, $backupdir = false, $format = false, $days = '5', $keepdaily = false, $keepweekly = false, $keepmonthly = false, $lockfile = false, $nicelevel = 0, $enable_mv_timestamp_bug = false, $tmp = false, $multiconnection = false, - $from = 'local', $rsync = false, $rsync_options = false, - $testconnect = false, $protocol = false, $ssh = false, $port = false, - $bandwidthlimit = false, $remote_rsync = false, $id_file = false, - $batch = false, $filelist = false, $filelistbase = false, - + # source + $from = 'local', $exclude_vserver = false, $exclude = [ "/home/*/.gnupg", "/home/*/.local/share/Trash", "/home/*/.Trash", "/home/*/.thumbnails", "/home/*/.beagle", "/home/*/.aMule", "/home/*/gtk-gnutella-downloads" ], $include = [ "/var/spool/cron/crontabs", "/var/backups", "/etc", "/root", "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ], - $exclude_vserver = false, $numericids = false, $compress = false, + # dest + $dest = 'remote', $testconnect = false, $protocol = false, $ssh = false, $port = false, + $bandwidthlimit = false, $remote_rsync = false, $id_file = false, + $batch = false, $batchbase = false, $numericids = false, $compress = false, + $fakesuper = false, - $dest = false, $fakesuper = false, $batchname = false, + # services + $initscripts = false, $service = false, - $initscripts = false, $service = false) + # system + $rm = false, $cp = false, $touch = false, $mv = false, $fsck = false) { include backupninja::client::rsync diff --git a/templates/rsync.conf.erb b/templates/rsync.conf.erb index 594683c..1f0a503 100644 --- a/templates/rsync.conf.erb +++ b/templates/rsync.conf.erb @@ -12,7 +12,7 @@ end -%> [source] -<%- %w{from testconnect include exclude ssh protocol rsync rssync_options exclude_vserver, numericids, compress, bandwidthlimit, remote_rsync, id_file, batch, batchbase, filelist, filelistbase}.each do |v| +<%- %w{from include exclude}.each do |v| if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> <%= v + ' = ' + instance_variable_get("@#{v}").to_s %> <%- -- cgit v1.2.3 From 3eed9efd2684766ca3d82b1eb354848b6a7e9015 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 16 Aug 2010 22:06:32 -0300 Subject: Removing comments --- manifests/rsync.pp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/manifests/rsync.pp b/manifests/rsync.pp index 64a42ba..f973004 100644 --- a/manifests/rsync.pp +++ b/manifests/rsync.pp @@ -1,6 +1,5 @@ # Run rsync as part of a backupninja run. # Based on backupninja::rdiff -# Right now just local origin and remote destination is supported. define backupninja::rsync( $order = 90, $ensure = present, $user = false, $home = false, $host = false, @@ -9,34 +8,33 @@ define backupninja::rsync( $home = false, $backupkeytype = "rsa", $backupkeystore = false, $extras = false, $nagios2_description = 'backups', $subfolder = 'rsync', - # general $log = false, $partition = false, $fscheck = false, $read_only = false, $mountpoint = false, $backupdir = false, $format = false, $days = '5', $keepdaily = false, $keepweekly = false, $keepmonthly = false, $lockfile = false, $nicelevel = 0, $enable_mv_timestamp_bug = false, $tmp = false, $multiconnection = false, - # source - $from = 'local', $exclude_vserver = false, + $exclude_vserver = false, $exclude = [ "/home/*/.gnupg", "/home/*/.local/share/Trash", "/home/*/.Trash", "/home/*/.thumbnails", "/home/*/.beagle", "/home/*/.aMule", "/home/*/gtk-gnutella-downloads" ], $include = [ "/var/spool/cron/crontabs", "/var/backups", "/etc", "/root", "/home", "/usr/local/*bin", "/var/lib/dpkg/status*" ], - # dest - $dest = 'remote', $testconnect = false, $protocol = false, $ssh = false, $port = false, + $testconnect = false, $protocol = false, $ssh = false, $port = false, $bandwidthlimit = false, $remote_rsync = false, $id_file = false, $batch = false, $batchbase = false, $numericids = false, $compress = false, $fakesuper = false, - # services $initscripts = false, $service = false, - # system $rm = false, $cp = false, $touch = false, $mv = false, $fsck = false) { include backupninja::client::rsync + # Right now just local origin and remote destination is supported. + $from = local + $dest = remote + case $dest { 'remote': { case $host { false: { err("need to define a host for remote backups!") } } -- cgit v1.2.3 From acb2e81dce10fc755601bbd0c3e09cd13f1b1fec Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Mon, 16 Aug 2010 22:51:37 -0300 Subject: Minor fixes --- manifests/rsync.pp | 12 ++++++------ templates/rsync.conf.erb | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/manifests/rsync.pp b/manifests/rsync.pp index f973004..1c82889 100644 --- a/manifests/rsync.pp +++ b/manifests/rsync.pp @@ -9,7 +9,7 @@ define backupninja::rsync( $nagios2_description = 'backups', $subfolder = 'rsync', $log = false, $partition = false, $fscheck = false, $read_only = false, - $mountpoint = false, $backupdir = false, $format = false, $days = '5', + $mountpoint = false, $backupdir = false, $format = false, $days = false, $keepdaily = false, $keepweekly = false, $keepmonthly = false, $lockfile = false, $nicelevel = 0, $enable_mv_timestamp_bug = false, $tmp = false, $multiconnection = false, @@ -31,17 +31,17 @@ define backupninja::rsync( { include backupninja::client::rsync - # Right now just local origin and remote destination is supported. - $from = local - $dest = remote + # Right now just local origin with remote destination is supported. + $from = 'local' + $dest = 'remote' case $dest { 'remote': { case $host { false: { err("need to define a host for remote backups!") } } $real_backuptag = $backuptag ? { - false => "backupninja-$fqdn", - default => $backuptag + false => "backupninja-$fqdn", + default => $backuptag, } $real_home = $home ? { diff --git a/templates/rsync.conf.erb b/templates/rsync.conf.erb index 1f0a503..71bf0b6 100644 --- a/templates/rsync.conf.erb +++ b/templates/rsync.conf.erb @@ -20,7 +20,7 @@ end -%> end -%> [dest] -<%- %w{dest, testconnect, ssh, protocol, numericids, compress, host, port, user, id_file, bandwidthlimit, remote_rsync, batch, batchbase, fakesuper}.each do |v| +<%- %w{dest testconnect ssh protocol numericids compress host port user id_file bandwidthlimit remote_rsync batch batchbase fakesuper}.each do |v| if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> <%= v + ' = ' + instance_variable_get("@#{v}").to_s %> <%- @@ -28,7 +28,7 @@ end -%> end -%> [services] -<%- %w{initscripts, service}.each do |v| +<%- %w{initscripts service}.each do |v| if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> <%= v + ' = ' + instance_variable_get("@#{v}").to_s %> <%- @@ -36,7 +36,7 @@ end -%> end -%> [system] -<%- %w{rm, cp, touch, mv fsck}.each do |v| +<%- %w{rm cp touch mv fsck}.each do |v| if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> <%= v + ' = ' + instance_variable_get("@#{v}").to_s %> <%- -- cgit v1.2.3 From 3815377799754d09f5ca28efdda8b78d9d3e2aa4 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 15 May 2012 11:33:38 -0300 Subject: Force bash at remote destination (backupninja upstream #3003) --- manifests/server.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/server.pp b/manifests/server.pp index 3114b92..b01c042 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -174,7 +174,7 @@ class backupninja::server { comment => "$real_user backup sandbox", home => "$real_dir", managehome => true, - shell => "/bin/sh", + shell => "/bin/bash", password => '*', require => Group['backupninjas'], tag => "$real_backuptag" @@ -190,7 +190,7 @@ class backupninja::server { comment => "$real_user backup sandbox", home => "$real_dir", managehome => true, - shell => "/bin/sh", + shell => "/bin/bash", password => '*', require => Group['backupninjas'], tag => "$real_backuptag" -- cgit v1.2.3 From 6c081113990344c14c96586024258ebc7dfa6de8 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Wed, 5 Sep 2012 13:10:28 -0300 Subject: Adding sqldumpoptions parameter to backupninja::mysql --- manifests/mysql.pp | 2 +- templates/mysql.conf.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/mysql.pp b/manifests/mysql.pp index 83d8f8f..ee2e71d 100644 --- a/manifests/mysql.pp +++ b/manifests/mysql.pp @@ -18,7 +18,7 @@ define backupninja::mysql( $order = 10, $ensure = present, $user = false, $dbusername = false, $dbpassword = false, $dbhost = 'localhost', $databases = 'all', $backupdir = false, $hotcopy = false, $sqldump = false, $compress = false, $configfile = true, - $vsname = false) + $vsname = false, $sqldumpoptions = '--lock-tables --complete-insert --add-drop-table --quick --quote-names') { $real_configfile = $configfile ? { diff --git a/templates/mysql.conf.erb b/templates/mysql.conf.erb index 14905fd..82dc368 100644 --- a/templates/mysql.conf.erb +++ b/templates/mysql.conf.erb @@ -3,7 +3,7 @@ # the next time Puppet runs. Please make configuration changes to this # service in Puppet. -<% %w{user dbusername dbpassword dbhost databases backupdir vsname}.each do |v| +<% %w{user dbusername dbpassword dbhost databases backupdir vsname sqldumpoptions}.each do |v| if send(v) -%><%= v + ' = ' + send(v) + "\n" %><% end -- cgit v1.2.3 From 018f03e5fdcfe433acb34a143599fca3dfbffc33 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 22 Jan 2013 12:22:40 -0200 Subject: Fixing handling for include and exclude parameters as arrays at rsync template --- templates/rsync.conf.erb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/templates/rsync.conf.erb b/templates/rsync.conf.erb index 71bf0b6..163ffc3 100644 --- a/templates/rsync.conf.erb +++ b/templates/rsync.conf.erb @@ -12,9 +12,13 @@ end -%> [source] -<%- %w{from include exclude}.each do |v| - if has_variable?(v) and instance_variable_get("@#{v}").to_s != "false" -%> -<%= v + ' = ' + instance_variable_get("@#{v}").to_s %> +<% unless from.empty? and from.to_s != "false" -%> +from = <%= from %> +<% end -%> +<%- %w{include exclude}.each do |v| + if has_variable?(v) + instance_variable_get("@#{v}").to_a.each do |parameter| -%> +<%= v + ' = ' + parameter %> <%- end end -%> -- cgit v1.2.3 From b4657888b560aed7885d2a9248bdb00604976257 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 22 Jan 2013 12:24:49 -0200 Subject: Fixing handling for include and exclude parameters as arrays at rsync template (2) --- templates/rsync.conf.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/rsync.conf.erb b/templates/rsync.conf.erb index 163ffc3..778676f 100644 --- a/templates/rsync.conf.erb +++ b/templates/rsync.conf.erb @@ -20,6 +20,7 @@ from = <%= from %> instance_variable_get("@#{v}").to_a.each do |parameter| -%> <%= v + ' = ' + parameter %> <%- + end end end -%> -- cgit v1.2.3 From 1cb8f09877a7e1bf2ef3a2cd35d846ab2ffeec7b Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 6 Mar 2014 17:12:15 -0300 Subject: Support for '' variable --- manifests/server.pp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/manifests/server.pp b/manifests/server.pp index b01c042..417b3e6 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -19,6 +19,10 @@ class backupninja::server { '' => $fqdn, default => $backupserver_tag } + $real_backupdir_ensure = $backupdir_ensure ? { + '' => "directory", + default => $backupdir_ensure, + } group { "backupninjas": ensure => "present", -- cgit v1.2.3 From 62f3b81b71f8a06c873729dc322bfa931518cc90 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 6 Mar 2014 17:12:46 -0300 Subject: Support for '' variable (2) --- manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/server.pp b/manifests/server.pp index 417b3e6..2cc11cc 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -30,7 +30,7 @@ class backupninja::server { } file { "$real_backupdir": - ensure => "directory", + ensure => "$real_backupdir_ensure", mode => 0710, owner => root, group => "backupninjas" } -- cgit v1.2.3 From d6580414a08c20d6b29f7fd5d81692247f0ad8ca Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 6 Mar 2014 17:18:33 -0300 Subject: Support for '' variable (3) --- manifests/server.pp | 1 + 1 file changed, 1 insertion(+) diff --git a/manifests/server.pp b/manifests/server.pp index 2cc11cc..66edb34 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -32,6 +32,7 @@ class backupninja::server { file { "$real_backupdir": ensure => "$real_backupdir_ensure", mode => 0710, owner => root, group => "backupninjas" + require => File["$real_backupdir_ensure"], } if $nagios_server { -- cgit v1.2.3 From 2a82c6c7bc547ba6046f651a8abc2b4b038a28c1 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 6 Mar 2014 17:40:48 -0300 Subject: Support for backupdir_ensure variable (4) --- manifests/server.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/server.pp b/manifests/server.pp index 66edb34..8a0f5e5 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -31,7 +31,7 @@ class backupninja::server { file { "$real_backupdir": ensure => "$real_backupdir_ensure", - mode => 0710, owner => root, group => "backupninjas" + mode => 0710, owner => root, group => "backupninjas", require => File["$real_backupdir_ensure"], } -- cgit v1.2.3 From b8a4f91cf2c6292d52fb9a8372292cc5a142b92d Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 6 Mar 2014 21:45:01 -0300 Subject: Support for backupdir_ensure variable (5) --- manifests/server.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/manifests/server.pp b/manifests/server.pp index 8a0f5e5..6ed87c8 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -32,7 +32,10 @@ class backupninja::server { file { "$real_backupdir": ensure => "$real_backupdir_ensure", mode => 0710, owner => root, group => "backupninjas", - require => File["$real_backupdir_ensure"], + require => $real_backupdir_ensure ? { + 'directory' => undef, + default => File["$real_backupdir_ensure"], + } } if $nagios_server { -- cgit v1.2.3