Puppet Class: mcollective::config

Defined in:
manifests/config.pp

Overview



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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'manifests/config.pp', line 1

class mcollective::config {
  if $mcollective::manage_bin_symlinks {
    file{"${mcollective::bindir}/mco":
      ensure => link,
      target => "/opt/puppetlabs/puppet/bin/mco",
    }
  }

  if $mcollective::main_collective {
    $main_collective = $mcollective::main_collective
  } else {
    $main_collective = $mcollective::collectives[-1]
  }

  if $mcollective::client_main_collective {
    $client_main_collective = $mcollective::client_main_collective
  } else {
    $client_main_collective = $main_collective
  }

  $client_collectives = {
    "collectives"     => $mcollective::client_collectives.join(","),
    "main_collective" => $client_main_collective
  }

  $server_collectives = {
    "collectives"     => $mcollective::collectives.join(","),
    "main_collective" => $main_collective
  }

  # some config settings are set directly on the main class, they are
  # things other classes need to function for example libdir is also
  # used by the plugin installer.  Specifically these settings should
  # never be overridden by settings from the hashes since any difference
  # between server/client cfg and what ends up being used by the plugin
  # installer will lead to plugins not being found.
  $global_config = {
    "libdir" => $mcollective::libdir
  }

  # These are overrides for the choria shim that we definitely do not want set or have
  # to set to specific values for whatever reason
  $shim_overrides = {
    "rpcaudit"        => "0",
    "collectives"     => "mcollective",
    "main_collective" => "mcollective",
    "daemonize"       => "0"
  }

  # The order of these are important:
  #
  # - common config is effectively defaults, overridable by specific server/client settings
  # - sub collective setup is derived from the class parameters, but should be overridable by server/client ccofig
  # - client_config and server_config has highest priority and overrules everything
  # - global config for things like libdir that are properties on the main class.  These should always take the main properties.
  $server_config = $mcollective::common_config + $server_collectives + $mcollective::server_config + $global_config
  $client_config = $mcollective::common_config + $client_collectives + $mcollective::client_config + $global_config


  $mcollective::required_directories.each |$dir| {
    file{$dir:
      ensure => "directory",
      owner  => $mcollective::plugin_owner,
      group  => $mcollective::plugin_group,
      mode   => "0775"
    }
  }

  file{"${mcollective::configdir}/server.cfg":
    ensure => absent,
  }

  file{"${mcollective::configdir}/client.cfg":
    ensure => absent
  }

  mcollective::config_file{"${mcollective::configdir}/client.conf":
    settings => $client_config,
  }

  $temp_shim_config = $mcollective::common_config + $mcollective::server_config + $global_config + $shim_overrides
  $shim_config = ["plugin.rpcaudit.logfile", "registerinterval", "registration", "rpcauditprovider"].reduce($temp_shim_config) |$memo, $key| {
    $memo.delete($key)
  }

  mcollective::config_file{"${mcollective::configdir}/choria-shim.cfg":
    settings => $shim_config,
  }

  $cu_policy_content = epp("mcollective/policy_file.epp", {
    "module"         => "choria_util",
    "policy_default" => $mcollective::policy_default,
    "policies"       => $mcollective::choria_util_policies,
    "site_policies"  => $mcollective::site_policies
  })

  file{"${mcollective::configdir}/policies/choria_util.policy":
    owner   => $mcollective::plugin_owner,
    group   => $mcollective::plugin_group,
    mode    => $mcollective::plugin_mode,
    content => $cu_policy_content,
  }

  $ru_policy_content = epp("mcollective/policy_file.epp", {
    "module"         => "rpcutil",
    "policy_default" => $mcollective::policy_default,
    "policies"       => $mcollective::rpcutil_policies,
    "site_policies"  => $mcollective::site_policies
  })

  file{"${mcollective::configdir}/policies/rpcutil.policy":
    owner   => $mcollective::plugin_owner,
    group   => $mcollective::plugin_group,
    mode    => $mcollective::plugin_mode,
    content => $ru_policy_content,
  }

  $scout_policy_content = epp("mcollective/policy_file.epp", {
    "module"         => "scout",
    "policy_default" => $mcollective::policy_default,
    "policies"       => $mcollective::scout_policies,
    "site_policies"  => $mcollective::site_policies
  })

  file{"${mcollective::configdir}/policies/scout.policy":
    owner   => $mcollective::plugin_owner,
    group   => $mcollective::plugin_group,
    mode    => $mcollective::plugin_mode,
    content => $scout_policy_content,
  }

  if $mcollective::default_rego_policy_source != "" {
    file{"${mcollective::configdir}/policies/rego/default.rego":
      owner   => $mcollective::plugin_owner,
      group   => $mcollective::plugin_group,
      mode    => $mcollective::plugin_mode,
      source  => $mcollective::default_rego_policy_source,
    }
  }
}