summaryrefslogtreecommitdiff
path: root/manifests/agent.pp
blob: 7deece117f4fbe45ef7b8f61fd96cf9256f7b643 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
class check_mk::agent (
  $version,
  $filestore    = 'puppet:///files/check_mk',
  $ip_whitelist = undef,
  $port         = '6556',
  $server_dir   = '/usr/bin',
  $use_cache    = false,
  $user         = 'root',
  $workspace    = '/root/check_mk',
) {
  if ! defined(Package['xinetd']) {
    package { 'xinetd':
      ensure => present,
    }
  }
  if ! defined(File[$workspace]) {
    file { $workspace:
      ensure => directory,
    }
  }
  file { "${workspace}/check_mk-agent-${version}.noarch.rpm":
    ensure  => present,
    source  => "${filestore}/check_mk-agent-${version}.noarch.rpm",
    require => Package['xinetd'],
  }
  file { "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm":
    ensure  => present,
    source  => "${filestore}/check_mk-agent-logwatch-${version}.noarch.rpm",
    require => Package['xinetd'],
  }
  package { 'check_mk-agent':
    ensure   => present,
    provider => 'rpm',
    source   => "${workspace}/check_mk-agent-${version}.noarch.rpm",
    require  => File["${workspace}/check_mk-agent-${version}.noarch.rpm"],
  }
  package { 'check_mk-agent-logwatch':
    ensure   => present,
    provider => 'rpm',
    source   => "${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm",
    require  => File["${workspace}/check_mk-agent-logwatch-${version}.noarch.rpm"],
  }
  if $use_cache {
    $server = "${server_dir}/check_mk_caching_agent"
  }
  else {
    $server = "${server_dir}/check_mk_agent"
  }
  if $ip_whitelist {
    $only_from = join($ip_whitelist, ' ')
  }
  else {
    $only_from = undef
  }
  file { '/etc/xinetd.d/check_mk':
    ensure  => present,
    owner   => 'root',
    group   => 'root',
    mode    => '0444',
    content => template('check_mk/agent/check_mk.erb'),
    require => Package['check_mk-agent','check_mk-agent-logwatch'],
    notify  => Service['xinetd'],
  }
  if ! defined(Service['xinetd']) {
    service { 'xinetd':
      ensure => 'running',
      enable => true,
    }
  }
  exec { 'check_mk-refresh-inventory':
    command  => '/usr/bin/cmk -I',
    schedule => 'daily',
  }
  @@check_mk::host { $::fqdn: }
}