puppet.pp 2.04 KB
Newer Older
1
class nest::base::puppet {
2
3
4
5
  $dns_alt_names = $::nest::openvpn_server ? {
    true    => [$::nest::openvpn_hostname],
    default => [],
  }
James T. Lee's avatar
James T. Lee committed
6

7
  if $facts['osfamily'] == 'Gentoo' {
8
9
10
11
12
13
14
15
16
17
18
    file { [
      '/etc/puppetlabs',
      '/etc/puppetlabs/facter',
      '/etc/puppetlabs/facter/facts.d',
    ]:
      ensure => 'directory',
      mode   => '0755',
      owner  => 'root',
      group  => 'root',
    }

19
20
    $facter_conf = @(FACTER_CONF)
      global : {
21
          external-dir : [ "/etc/puppetlabs/facter/facts.d" ]
James T. Lee's avatar
James T. Lee committed
22
      }
23
24
25
26
27
28
29
      | FACTER_CONF

    file { '/etc/puppetlabs/facter/facter.conf':
      mode    => '0644',
      owner   => 'root',
      group   => 'root',
      content => $facter_conf,
30
31
    }

32
    $outputs_facts = @("OUTPUTS_FACTS")
33
      ---
34
      primary_output: '${::nest::primary_monitor}'
35
36
37
      scaling:
        gui: ${::nest::gui_scaling_factor}
        text: ${::nest::text_scaling_factor}
38
      | OUTPUTS_FACTS
39

40
    file { '/etc/puppetlabs/facter/facts.d/outputs.yaml':
41
42
43
      mode    => '0644',
      owner   => 'root',
      group   => 'root',
44
      content => $outputs_facts,
45
    }
46

47
48
49
50
    file { '/etc/puppetlabs/facter/facts.d/scaling.yaml':
      ensure => absent,
    };

51
52
53
54
55
56
    # My hosts take on the domain name of the network to which they're attached.
    # Provide a stable, canonical value for Puppet.
    file { '/etc/puppetlabs/facter/facts.d/fqdn.yaml':
      mode    => '0644',
      owner   => 'root',
      group   => 'root',
57
      content => "---\nfqdn: '${trusted['certname']}.nest'\n",
58
59
    }

60
    if $facts['build'] or $facts['running_live'] {
61
62
63
      $puppet_runmode = 'unmanaged'
    } else {
      $puppet_runmode = 'systemd.timer'
64
65
66
    }

    class { 'puppet':
67
68
69
70
      dns_alt_names        => $dns_alt_names,
      dir                  => '/etc/puppetlabs/puppet',
      codedir              => '/etc/puppetlabs/code',
      ssldir               => '/etc/puppetlabs/puppet/ssl',
71
      runmode              => $puppet_runmode,
72
      unavailable_runmodes => ['cron'],
73
74
    }
  } else {
75
    class { 'puppet':
76
77
      dns_alt_names => $dns_alt_names,
    }
78
79
  }
}