diff options
-rw-r--r-- | manifests/init.pp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index de91cc8..991a8df 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -30,29 +30,37 @@ class monkeysphere { $key = "ssh://${fqdn}${ssh_port}" + file { "/usr/local/sbin/monkeysphere-check-key": + ensure => present, + owner => root, + group => root, + mode => 0755, + content => "#!/bin/bash\n/usr/bin/gpg --homedir /var/lib/monkeysphere/host --list-keys '=$key' &> /dev/null || false", + } + # Server host key publication case $monkeysphere_publish_key { false: { exec { "/usr/sbin/monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key $key": - unless => "/usr/bin/gpg --homedir /var/lib/monkeysphere/host --list-keys '=$key' &> /dev/null", + unless => "/usr/local/sbin/monkeysphere-check-key", user => "root", - require => Package["monkeysphere"], + require => [ Package["monkeysphere"], File["/usr/local/sbin/monkeysphere-check-key"] ], } } 'mail': { exec { "/usr/sbin/monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key $key && \ /usr/bin/mail -s 'monkeysphere host pgp key for $fqdn' root < /var/lib/monkeysphere/host_keys.pub.pgp": - unless => "/usr/bin/gpg --homedir /var/lib/monkeysphere/host --list-keys '=$key' &> /dev/null", + unless => "/usr/local/sbin/monkeysphere-check-key", user => "root", - require => Package["monkeysphere"], + require => [ Package["monkeysphere"], File["/usr/local/sbin/monkeysphere-check-key"] ], } } default: { exec { "/usr/sbin/monkeysphere-host import-key /etc/ssh/ssh_host_rsa_key $key && \ /usr/sbin/monkeysphere-host publish-key": - unless => "/usr/bin/gpg --homedir /var/lib/monkeysphere/host --list-keys '=$key' &> /dev/null", + unless => "/usr/local/sbin/monkeysphere-check-key", user => "root", - require => Package["monkeysphere"], + require => [ Package["monkeysphere"], File["/usr/local/sbin/monkeysphere-check-key"] ], } } } |