# Class: profiles::puppet::puppetmaster # # This class manages the puppetmaster using the ghoneycutt-puppet module. # It manages the server settings in the puppet.conf file. # # Parameters: None # # Actions: # - Sets up the server, main, agent, and master sections in the puppet.conf file # # Usage: # Directly include the class in your node definitions or classify your nodes # using an ENC or Hiera. # Example: # node 'puppet.example.com' { # include profiles::puppet::puppetmaster # } # # Requirements: # - The 'ghoneycutt/puppet' module should be installed in your Puppet master. # - Puppet master must have access to the necessary directories. # # Limitations: # This is designed to work on Unix-like systems. class profiles::puppet::puppetmaster ( Optional[Stdlib::Fqdn] $puppetdb_host = lookup('profiles::puppet::puppetdb::puppetdb_host', Optional[Stdlib::Fqdn], 'first', undef), ) { if $facts['enc_role'] == 'roles::infra::puppet::master' { include profiles::puppet::r10k include profiles::puppet::g10k include profiles::puppet::enc include profiles::puppet::cobbler_enc include profiles::puppet::autosign include profiles::puppet::gems include profiles::helpers::certmanager include profiles::puppet::server class { 'puppetdb::master::config': puppetdb_server => $puppetdb_host, manage_storeconfigs => false, } Package['puppetserver'] -> Class['profiles::puppet::gems'] -> Class['profiles::puppet::r10k'] -> Class['profiles::puppet::g10k'] -> Class['profiles::puppet::enc'] -> Class['profiles::puppet::cobbler_enc'] -> Class['profiles::puppet::autosign'] -> Class['puppetdb::master::config'] -> Class['profiles::puppet::server'] } }