diff options
-rw-r--r-- | lib/facter/ekeyd.rb | 7 | ||||
-rw-r--r-- | manifests/base.pp | 18 | ||||
-rw-r--r-- | manifests/init.pp | 7 |
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 +} |