aboutsummaryrefslogtreecommitdiff
path: root/manifests/role/master.pp
blob: 64db626d616d58c72257829aa5b1868c852e41ff (plain)
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
class nodo::role::master {
  $main        = hiera('nodo::role::master::main',        false)
  $db_password = hiera('nodo::role::master::db_password', '')

  case $db_password {
    '': { fail("Please set nodo::master::db_password in your config") }
  }

  if $main == true {
    # Puppetmaster should be included before nodo::virtual
    class { 'puppet::master':
      main => true,
    }

    # The main master has a host entry pointing to itself, other
    # masters still retrieve catalogs from the main master.
    #
    # For that we're relying just on DNS entries.
    host { "puppet":
      ensure       => absent,
      ip           => "127.0.0.1",
      host_aliases => ["puppet.${::domain}"],
    }
  } else {
    class { 'puppet::master':
      main => false,
    }

    host { "puppet":
      ensure => absent,
    }
  }

  # These should be included after puppetmaster
  include nodo::role::virtual
  include database
  include git::daemon
  include nodo::subsystem::monitor::master
  include websites

  # Update master's puppet.conf if you change here
  database::instance { "puppet":
    password => "${db_password}",
  }

  # Used for trac dependency graphs
  package { "graphviz":
    ensure => present,
  }

  # Check domain registration
  domain_check::instance { $::domain: }
}