]> gitweb.fluxo.info Git - puppet-backupninja.git/commitdiff
try to manage the backupninja keys in a sane way, but might be totally insane
authorMicah Anderson <micah@riseup.net>
Thu, 22 May 2008 03:42:34 +0000 (03:42 +0000)
committerMicah Anderson <micah@riseup.net>
Thu, 22 May 2008 03:42:34 +0000 (03:42 +0000)
manifests/client.pp
manifests/rdiff.pp

index fed83e61f652c74782b2f9e8743b43a9b9d392b7..fb0c9348ae87fc25c0edcd38cc15b2d8cac80e49 100644 (file)
@@ -3,10 +3,54 @@ class backupninja::client {
     '' => "/etc/backup.d",
     default => $cfg_override,
   }
+  $real_keystore = $backupkeystore ? {
+    '' => '$fileserver/keys/backupkeys',
+    default => $backupkeystore,
+  }
+  $real_keytype = $backupkeytype ? {
+    '' => 'rsa',
+    default => $backupkeytype,
+  }
+  $real_keydestination = $keydestination ? {
+    '' => '/root/.ssh',
+    default => $keydestination,
+  }
+  $real_keyowner = $keyowner ? {
+    '' => 0,
+    default => $keyowner,
+  }
+  $real_keygroup = $keygroup ? {
+    '' => 0,
+    default => $keygroup,
+  }
+  $real_keymanage = $keymanage ? {
+    '' => true,
+    default => $keymanage
+  }
   package { 'backupninja':
     ensure => '0.9.5-3';
   }
   file { $configdir:
     ensure => directory
   }
+  define key (
+    $sourcekey='$real_keystore/${name}_id_$real_keytype',
+    $destination='$real_keydestination', $key_type=$real_keytype,
+    $key_owner=$real_keyowner, $key_group=$real_keygroup, $installkey=$real_keymanage
+  )
+  case $installkey {
+    true: {
+      {
+        file { "$destination":
+          ensure => directory,
+          mode => 700, owner => $keyowner, group => $keygroup,
+        }
+        file { "$destination/id_$keytype":
+          source => "$sourcekey",
+          mode => 0400, owner => $keyowner, group => $keygroup,
+          require => File["$destination"],
+        }
+      }
+    }
+  }
 }
index 6e81ab2d171ab40b9197603e99f93de0ca4ddce1..888d7746b36098d8b93886e3cba200789e3811fe 100644 (file)
@@ -32,6 +32,7 @@ define backupninja::rdiff($order = 90,
                'remote': {
                        case $host { false: { err("need to define a host for remote backups!") } }
                        backupninja::server::sandbox { $user: host => $host, dir => $directory }
+                        backupninja::client::key { $user }
                }
        }
        file { "${backupninja::client::configdir}/${order}_${name}.rdiff":