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,
}
}
|