summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/facter/ekeyd.rb7
-rw-r--r--manifests/base.pp18
-rw-r--r--manifests/init.pp7
3 files changed, 32 insertions, 0 deletions
diff --git a/lib/facter/ekeyd.rb b/lib/facter/ekeyd.rb
new file mode 100644
index 0000000..a201e7f
--- /dev/null
+++ b/lib/facter/ekeyd.rb
@@ -0,0 +1,7 @@
+Facter.add('ekeyd_key_present') do
+ confine :kernel => %w{Linux}
+ setcode do
+ FileTest.exists?('/proc/bus/usb/devices') && \
+ !(File.read('/proc/bus/usb/devices') =~ /Product=Entropy Key/).nil?
+ end
+end
diff --git a/manifests/base.pp b/manifests/base.pp
new file mode 100644
index 0000000..e4d572d
--- /dev/null
+++ b/manifests/base.pp
@@ -0,0 +1,18 @@
+class ekeyd::base {
+
+ package{'ekeyd':
+ ensure => installed,
+ }
+
+ service{'ekeyd':
+ ensure => running,
+ enable => true,
+ require => Package['ekeyd'],
+ }
+
+ exec{'configure_ekey_key':
+ command => "ekey-rekey `ekeydctl list | grep \"/dev/entropykey\" | awk -F, '{ print \$5}'` ${ekey_masterkey}",
+ unless => "ekeydctl list | grep -q 'Running OK'",
+ require => Service['ekeyd'],
+ }
+}
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 0000000..7ccad90
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,7 @@
+class ekeyd {
+
+ if $ekey_key_present != 'true' { fail("Can't find an ekey key plugged into usb on ${fqdn}") }
+ if !$ekey_masterkey { fail("You need to define \$ekey_masterkey for ${fqdn}") }
+
+ include ekeyd::base
+}