Puppet Class: icingaweb2::module::director::config

Defined in:
manifests/module/director/config.pp

Summary

Configure the director module.

Overview



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
# File 'manifests/module/director/config.pp', line 6

class icingaweb2::module::director::config {
  assert_private()

  $stdlib_version = $icingaweb2::globals::stdlib_version
  $icingacli_bin  = $icingaweb2::globals::icingacli_bin
  $install_method = $icingaweb2::module::director::install_method
  $db             = $icingaweb2::module::director::db
  $db_resource    = $icingaweb2::module::director::db_resource_name
  $use_tls        = $icingaweb2::module::director::use_tls
  $tls            = $icingaweb2::module::director::tls + {
    cacert_file => icingaweb2::pick($icingaweb2::module::director::tls['cacert_file'], $icingaweb2::config::tls['cacert_file']),
    capath      => icingaweb2::pick($icingaweb2::module::director::tls_capath, $icingaweb2::config::tls['capath']),
    noverify    => icingaweb2::pick($icingaweb2::module::director::tls_noverify, $icingaweb2::config::tls['noverify']),
    cipher      => icingaweb2::pick($icingaweb2::module::director::tls_cipher, $icingaweb2::config::tls['cipher']),
  }
  $settings       = $icingaweb2::module::director::db_settings + $icingaweb2::module::director::kickstart_settings
  $service_user   = $icingaweb2::module::director::service_user

  Exec {
    user     => 'root',
    path     => $facts['path'],
    provider => 'shell',
  }

  icingaweb2::resource::database { $db_resource:
    type         => $db['type'],
    host         => $db['host'],
    port         => $db['port'],
    database     => $db['database'],
    username     => $db['username'],
    password     => $db['password'],
    charset      => pick($icingaweb2::module::director::db_charset, $icingaweb2::globals::db_charset[$db['type']]['director']),
    use_tls      => $use_tls,
    tls_noverify => $tls['noverify'],
    tls_key      => $tls['key_file'],
    tls_cert     => $tls['cert_file'],
    tls_cacert   => $tls['cacert_file'],
    tls_capath   => $tls['capath'],
    tls_cipher   => $tls['cipher'],
  }

  create_resources('icingaweb2::inisection', $settings)

  if $install_method == 'git' {
    systemd::unit_file { 'icinga-director.service':
      content => epp('icingaweb2/icinga-director.service.epp', {
          'conf_user'     => $service_user,
          'icingacli_bin' => $icingacli_bin,
      }),
    }
  }

  if $install_method == 'package' {
    systemd::dropin_file { 'icinga-director.conf':
      unit    => 'icinga-director.service',
      content => "[Service]\nUser=${service_user}",
    }
  }
}