summaryrefslogtreecommitdiff
path: root/manifests/service/gpgkey.pp
blob: 08b74737c2858100e70b1d0018bef49aa8c1a879 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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
  $gpg_keyserver = $nagios::plugins::gpg::keyserver

  exec{"manage_key_${name}":
    user  => nagios,
    group => nagios,
  }
  nagios::service{
    "check_gpg_${name}":
      ensure => $ensure;
  }

  if $ensure == 'present' {
    Exec["manage_key_${name}"]{
      command => "gpg --keyserver ${gpg_keyserver} --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}"],
    }
  }
}