summaryrefslogtreecommitdiff
path: root/manifests/server.pp
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2008-02-29 17:38:32 +0000
committerMicah Anderson <micah@riseup.net>2008-02-29 17:38:32 +0000
commit53f68419ad51518aaadf0e57641ec10357ac5f80 (patch)
tree2f86753ac33fea429b0ee02926bba8dfbe2a4df2 /manifests/server.pp
parent4a59f0dbfbb67964379815a656e318b83702f723 (diff)
install anarcats backupninja module changes
Diffstat (limited to 'manifests/server.pp')
-rw-r--r--manifests/server.pp53
1 files changed, 53 insertions, 0 deletions
diff --git a/manifests/server.pp b/manifests/server.pp
new file mode 100644
index 0000000..40b2dca
--- /dev/null
+++ b/manifests/server.pp
@@ -0,0 +1,53 @@
+class backupninja::server {
+ $backupdir = $backupdir_override ? {
+ '' => "/backup",
+ default => $backupdir_override,
+ }
+ group { "backupninjas":
+ ensure => "present",
+ gid => 700
+ }
+ file { "$backupdir":
+ ensure => "directory",
+ mode => 750, owner => root, group => "backupninjas"
+ }
+ User <<| tag == "backupninja-$fqdn" |>>
+
+ # this define allows nodes to declare a remote backup sandbox, that have to
+ # get created on the server
+ define sandbox($host, $dir = false, $uid = false, $gid = "backupninjas") {
+ $real_dir = $dir ? {
+ false => "${backupninja::server::backupdir}/$fqdn",
+ default => $dir,
+ }
+ case $uid {
+ false: {
+ @@user { "$name":
+ ensure => "present",
+ gid => "$gid",
+ comment => "$name backup sandbox",
+ home => "$real_dir",
+ managehome => true,
+ shell => "/bin/sh",
+ password => '*',
+ require => [ Group['backupninjas'], File["/backup"] ],
+ tag => "backupninja-$host"
+ }
+ }
+ default: {
+ @@user { "$name":
+ ensure => "present",
+ uid => "$uid",
+ gid => "$gid",
+ comment => "$name backup sandbox",
+ home => "$real_dir",
+ managehome => true,
+ shell => "/bin/sh",
+ password => '*',
+ require => [ Group['backupninjas'], File["/backup"] ],
+ tag => "backupninja-$host"
+ }
+ }
+ }
+ }
+}