template within template? better not
[mirror/dsa-puppet.git] / modules / entropykey / manifests / init.pp
index e9a2bbe..8f91cf5 100644 (file)
@@ -8,7 +8,13 @@ class entropykey::provider {
             source => "puppet:///modules/entropykey/ekeyd.conf",
             notify  => Exec['restart_ekeyd'],
             require => [ Package['ekeyd'] ],
-        ;
+            ;
+        # our CRL expires after a while (2 or 4 weeks?), so we have
+        # to restart stunnel so it loads the new CRL.
+        "/etc/cron.weekly/stunnel-ekey-restart":
+            content =>  "#!/bin/sh\n# This file is under puppet control\nenv -i /etc/init.d/stunnel4 restart puppet-ekeyd > /dev/null\n",
+            mode => "555",
+            ;
     }
 
     exec {
@@ -55,12 +61,26 @@ class entropykey::remote_consumer inherits entropykey::local_consumer {
     stunnel4::stunnel_client {
         "ekeyd":
             accept => "127.0.0.1:8888",
-            connecthost => "heininen.debian.org",
+            connecthost => "${entropy_provider}",
             connectport => 18888,
             ;
     }
 }
 
+class entropykey {
+    case getfromhash($nodeinfo, 'entropy_key') {
+        true:  { include entropykey::provider }
+    }
+
+    $entropy_provider  = entropy_provider($fqdn, $nodeinfo)
+    case $entropy_provider {
+        false: {}
+        local: { include entropykey::local_consumer }
+        default: { include entropykey::remote_consumer }
+    }
+
+}
+
 # vim:set et:
 # vim:set sts=4 ts=4:
 # vim:set shiftwidth=4: