summaryrefslogtreecommitdiff
path: root/manifests/service
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2015-10-12 23:23:44 +0200
committermh <mh@immerda.ch>2015-10-12 23:23:44 +0200
commit5e92209e5b284e0f0d99c30e555cc498a39c396e (patch)
treead06f8c91e5fdb28adc6362c0041b23b181459f9 /manifests/service
parent4d4119d3c7b47ed34b7e014b3a9f9ff0bddda76c (diff)
introduce gpg checks
Diffstat (limited to 'manifests/service')
-rw-r--r--manifests/service/gpgkey.pp43
1 files changed, 43 insertions, 0 deletions
diff --git a/manifests/service/gpgkey.pp b/manifests/service/gpgkey.pp
new file mode 100644
index 0000000..0c271f4
--- /dev/null
+++ b/manifests/service/gpgkey.pp
@@ -0,0 +1,43 @@
+# define a gpgkey to be watched
+define nagios::service::gpgkey(
+ $ensure = 'present',
+ $warning = '14',
+ $key_info = undef,
+){
+ validate_slength($name,40,40)
+ require ::nagios::plugins::gpg
+ $gpg_home = $nagios::plugins::gpg::gpg_home
+
+ exec{"manage_key_${name}": }
+ nagios::service{
+ "check_gpg_${name}":
+ ensure => $ensure;
+ }
+
+ if $ensure == 'present' {
+ Exec["manage_key_${name}"]{
+ command => "gpg --homedir ${gpg_home} --recv-keys ${name}",
+ unless => "gpg --homedir ${gpg_home} --list-keys ${name}",
+ before => Nagios::Service["check_gpg_${name}"],
+ }
+
+ Nagios::Service["check_gpg_${name}"]{
+ check_command => "check_gpg!${warning}!${name}",
+ }
+ if $key_info {
+ Nagios::Service["check_gpg_${name}"]{
+ service_description => "Keyfingerprint: ${name} - Info: ${key_info}",
+ }
+ } else {
+ Nagios::Service["check_gpg_${name}"]{
+ service_description => "Keyfingerprint: ${name}",
+ }
+ }
+ } else {
+ Exec["manage_key_${name}"]{
+ command => "gpg --batch --homedir ${gpg_home} --delete-key ${name}",
+ onlyif => "gpg --homedir ${gpg_home} --list-keys ${name}",
+ require => Nagios::Service["check_gpg_${name}"],
+ }
+ }
+}