--- /dev/null
+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
--- /dev/null
+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'],
+ }
+}
--- /dev/null
+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
+}