Puppet Class: check_mk::install

Defined in:
manifests/install.pp

Overview

Parameters:

  • site (String)
  • workspace (Stdlib::Absolutepath)
  • filestore (Optional[String]) (defaults to: undef)
  • package (Optional[Pattern[/^(check-mk-(\w*))(-|_)(\d*\.\d*\.\d*p\d*).+\.(\w+)$/]]) (defaults to: undef)


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
# File 'manifests/install.pp', line 7

class check_mk::install (
  String $site,
  Stdlib::Absolutepath $workspace,
  Optional[String] $filestore = undef,
  Optional[Pattern[/^(check-mk-(\w*))(-|_)(\d*\.\d*\.\d*p\d*).+\.(\w+)$/]] $package = undef,
) {
  if $filestore {
    if ! defined(File[$workspace]) {
      file { $workspace:
        ensure => directory,
      }
    }
    file { "${workspace}/${package}":
      ensure  => file,
      source  => "${filestore}/${package}",
      require => File[$workspace],
    }

    # check-mk-raw-1.5.0p7_0.stretch_amd64.deb
    if $package =~ /^(check-mk-\w*(-|_)\d*\.\d*\.\d*p\d*).+\.(\w+)$/ {
      $type = $3
      $package_name = $1

      if $type == 'deb' {
        package { 'gdebi':
          ensure => present,
        }

        exec { 'install-check-mk':
          command => "/usr/bin/gdebi --non-interactive ${workspace}/${package}",
          unless  => "/usr/bin/dpkg-query -W --showformat '\${Status} \${Package}\\n' | grep ${package_name} | grep -q 'install ok installed'", # lint:ignore:140chars
          require => Package['gdebi'],
          before  => Exec['omd-create-site'],
        }
      } elsif $type == 'rpm' {
        package { $package_name:
          ensure   => installed,
          provider => 'yum',
          source   => "${workspace}/${package}",
          require  => File["${workspace}/${package}"],
          before   => Exec['omd-create-site'],
        }
      } else {
        fail('Only support RPM or DEB files.')
      }
    } else {
      fail('Package does not match format like check-mk-raw-1.5.0p7_0.stretch_amd64.deb')
    }
  }
  else {
    $package_name = $package
    package { $package_name:
      ensure => installed,
      before => Exec['omd-create-site'],
    }
  }
  $etc_dir = "/omd/sites/${site}/etc"
  exec { 'omd-create-site':
    command => "/usr/bin/omd create ${site}",
    creates => $etc_dir,
  }
}