- manage puppetserver package - set order for puppetserver classes - for profiles::puppet::server class: - set param types using stdlib where possible - set default values for all params - move configuration data to hieradata - wait for enc_role fact to match role - exclude puppet::client from puppermaster nodes
57 lines
1.7 KiB
Puppet
57 lines
1.7 KiB
Puppet
# 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']
|
|
}
|
|
|
|
}
|