]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/entropykey/manifests/init.pp
More ekeyd work
[dsa-puppet.git] / modules / entropykey / manifests / init.pp
1 class entropykey::provider {
2     package {
3         "ekeyd": ensure => installed;
4     }
5
6     file {
7         "/etc/entropykey/ekeyd.conf":
8             source => "puppet:///modules/entropykey/ekeyd.conf",
9             notify  => Exec['restart_ekeyd'],
10             require => [ Package['ekeyd'] ],
11         ;
12     }
13
14     exec {
15         "restart_ekeyd":
16                 command => "true && cd / && env -i /etc/init.d/ekeyd restart",
17                 require => [ File['/etc/entropykey/ekeyd.conf'] ],
18                 refreshonly => true,
19                 ;
20     }
21
22     include "stunnel4"
23     stunnel4::stunnel_server {
24         "ekeyd":
25             accept => 18888,
26             connect => "127.0.0.1:8888",
27             ;
28     }
29 }
30
31 class entropykey::local_consumer {
32     package {
33         "ekeyd-egd-linux": ensure => installed;
34     }
35
36     file {
37         "/etc/default/ekeyd-egd-linux":
38             source => "puppet:///modules/entropykey/ekeyd-egd-linux",
39             notify  => Exec['restart_ekeyd-egd-linux'],
40             require => [ Package['ekeyd-egd-linux'] ],
41         ;
42     }
43
44     exec {
45         "restart_ekeyd-egd-linux":
46                 command => "true && cd / && env -i /etc/init.d/ekeyd-egd-linux restart",
47                 require => [ File['/etc/default/ekeyd-egd-linux'] ],
48                 refreshonly => true,
49                 ;
50     }
51 }
52
53 class entropykey::remote_consumer inherits entropykey::local_consumer {
54     include "stunnel4"
55     stunnel4::stunnel_client {
56         "ekeyd":
57             accept => "127.0.0.1:8888",
58             connecthost => "${entropy_provider}",
59             connectport => 18888,
60             ;
61     }
62 }
63
64 class entropykey {
65     case getfromhash($nodeinfo, 'entropy_key') {
66         true:  { include entropykey::provider }
67     }
68
69     $entropy_provider  = entropy_provider($fqdn, $nodeinfo)
70     case $entropy_provider {
71         false: {}
72         local: { include entropykey::local_consumer }
73         default: { include entropykey::remote_consumer }
74     }
75
76 }
77
78 # vim:set et:
79 # vim:set sts=4 ts=4:
80 # vim:set shiftwidth=4: