Back up draghi too
[mirror/dsa-puppet.git] / modules / bacula / manifests / director.pp
index 37bea1d..c60e8b2 100644 (file)
@@ -18,6 +18,7 @@ class bacula::director inherits bacula {
       ensure  => directory,
       mode => 755,
       group => bacula,
+      purge => true,
       notify  => Exec["bacula-director restart"]
       ;
     "/etc/bacula/bacula-dir.conf":
@@ -35,19 +36,29 @@ class bacula::director inherits bacula {
       refreshonly => true;
   }
 
-  define bacula_client($client) {
+  define bacula_client() {
     # These must be kept in sync with the settings in bacula.pp
-    $bacula_client_name       = "$client-fd"
-    $bacula_client_secret     = hmac("/etc/puppet/secret", "bacula-fd-$client")
+    $bacula_client_name       = "${name}-fd"
+    $bacula_client_secret     = hmac("/etc/puppet/secret", "bacula-fd-${name}")
+    $client = $name
 
     file {
-      "/etc/bacula/conf.d/$client.conf":
+      "/etc/bacula/conf.d/${name}.conf":
       content => template("bacula/per-client.conf.erb"),
       mode => 440,
       group => bacula,
       notify  => Exec["bacula-director restart"]
       ;
+    }
+  }
+#  $allhosts = keys($site::allnodeinfo)
+  $allhosts = [ "berlioz.debian.org", "biber.debian.org", "draghi.debian.org" ]
+  bacula_client { $allhosts: }
+
+  @ferm::rule { 'dsa-bacula-dir':
+    domain      => '(ip ip6)',
+    description => 'Allow bacula access from localhost',
+    rule        => "proto tcp mod state state (NEW) dport (bacula-dir) saddr ($bacula_director_address localhost) ACCEPT",
   }
 
-  bacula_client(allnodeinfo('hostname', ''))
 }