Puppet Class: puppet::config

Inherited by:
puppet::agent::config
puppet::server::config
Defined in:
manifests/config.pp

Overview

Set up the puppet config

Parameters:

  • allow_any_crl_auth (Any) (defaults to: $puppet::allow_any_crl_auth)
  • auth_allowed (Any) (defaults to: $puppet::auth_allowed)
  • auth_template (Any) (defaults to: $puppet::auth_template)
  • ca_server (Any) (defaults to: $puppet::ca_server)
  • ca_port (Any) (defaults to: $puppet::ca_port)
  • dns_alt_names (Any) (defaults to: $puppet::dns_alt_names)
  • module_repository (Any) (defaults to: $puppet::module_repository)
  • pluginsource (Any) (defaults to: $puppet::pluginsource)
  • pluginfactsource (Any) (defaults to: $puppet::pluginfactsource)
  • puppet_dir (Any) (defaults to: $puppet::dir)
  • puppetmaster (Any) (defaults to: $puppet::puppetmaster)
  • syslogfacility (Any) (defaults to: $puppet::syslogfacility)
  • srv_domain (Any) (defaults to: $puppet::srv_domain)
  • use_srv_records (Any) (defaults to: $puppet::use_srv_records)
  • additional_settings (Any) (defaults to: $puppet::additional_settings)
  • client_certname (Any) (defaults to: $puppet::client_certname)


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

class puppet::config(
  $allow_any_crl_auth  = $puppet::allow_any_crl_auth,
  $auth_allowed        = $puppet::auth_allowed,
  $auth_template       = $puppet::auth_template,
  $ca_server           = $puppet::ca_server,
  $ca_port             = $puppet::ca_port,
  $dns_alt_names       = $puppet::dns_alt_names,
  $module_repository   = $puppet::module_repository,
  $pluginsource        = $puppet::pluginsource,
  $pluginfactsource    = $puppet::pluginfactsource,
  $puppet_dir          = $puppet::dir,
  $puppetmaster        = $puppet::puppetmaster,
  $syslogfacility      = $puppet::syslogfacility,
  $srv_domain          = $puppet::srv_domain,
  $use_srv_records     = $puppet::use_srv_records,
  $additional_settings = $puppet::additional_settings,
  $client_certname     = $puppet::client_certname,
) {
  puppet::config::main{
    'vardir': value => $puppet::vardir;
    'logdir': value => $puppet::logdir;
    'rundir': value => $puppet::rundir;
    'ssldir': value => $puppet::ssldir;
    'privatekeydir': value => '$ssldir/private_keys { group = service }';
    'hostprivkey': value => '$privatekeydir/$certname.pem { mode = 640 }';
    'show_diff': value  => $puppet::show_diff;
    'codedir': value => $puppet::codedir;
  }

  if $module_repository and !empty($module_repository) {
    puppet::config::main{'module_repository': value => $module_repository; }
  }
  if $ca_server and !empty($ca_server) {
    puppet::config::main{'ca_server': value => $ca_server; }
  }
  if $ca_port {
    puppet::config::main{'ca_port': value => $ca_port; }
  }
  if $dns_alt_names and !empty($dns_alt_names) {
    puppet::config::main{'dns_alt_names': value => $dns_alt_names; }
  }
  if $use_srv_records {
    unless $srv_domain {
      fail('$::domain fact found to be undefined and $srv_domain is undefined')
    }
    puppet::config::main{
      'use_srv_records': value => true;
      'srv_domain': value => $srv_domain;
    }
  } else {
    puppet::config::main {
      'server': value => pick($puppetmaster, $facts['networking']['fqdn']);
    }
  }
  if $pluginsource {
    puppet::config::main{'pluginsource': value => $pluginsource; }
  }
  if $pluginfactsource {
    puppet::config::main{'pluginfactsource': value => $pluginfactsource; }
  }
  if $syslogfacility and !empty($syslogfacility) {
    puppet::config::main{'syslogfacility': value => $syslogfacility; }
  }
  if $client_certname {
    puppet::config::main {
      'certname': value => $client_certname;
    }
  }

  $additional_settings.each |$key,$value| {
    puppet::config::main { $key: value => $value }
  }

  file { $puppet_dir:
    ensure => directory,
    owner  => $puppet::dir_owner,
    group  => $puppet::dir_group,
  }
  -> case $facts['os']['family'] {
    'Windows': {
      concat { "${puppet_dir}/puppet.conf":
        mode           => '0674',
        ensure_newline => true,
      }
    }

    default: {
      concat { "${puppet_dir}/puppet.conf":
        owner          => 'root',
        group          => $puppet::params::root_group,
        mode           => '0644',
        ensure_newline => true,
      }
    }
  }
  ~> file { "${puppet_dir}/auth.conf":
    content => template($auth_template),
  }
}