# Class: profiles::puppet::server # # This class manages Puppet server's configuration and service. # # Parameters: # vardir - Directory path for variable data. # logdir - Directory path for logs. # rundir - Directory path for run-time data. # pidfile - File path for the PID file. # codedir - Directory path for code data. # dns_alt_names - Array of alternate DNS names for the server. # agent_server - Server name for the puppet agent on the master. # node_terminus - Node terminus. # external_nodes - Path to the external node classifier script. # autosign - Path to the autosign script. # class profiles::puppet::server ( Stdlib::Absolutepath $vardir = '/opt/puppetlabs/server/data/puppetserver', Stdlib::Absolutepath $logdir = '/var/log/puppetlabs/puppetserver', Stdlib::Absolutepath $rundir = '/var/run/puppetlabs/puppetserver', Stdlib::Absolutepath $pidfile = '/var/run/puppetlabs/puppetserver/puppetserver.pid', Stdlib::Absolutepath $codedir = '/etc/puppetlabs/code', Array[String] $dns_alt_names = [ $facts['networking']['fqdn'], $facts['networking']['hostname'], ], Stdlib::Fqdn $agent_server = 'puppetmaster', Stdlib::Fqdn $report_server = $agent_server, Stdlib::Fqdn $ca_server = 'puppetca', String $node_terminus = 'exec', String $external_nodes = '/opt/cobbler-enc/cobbler-enc', String $default_environment = 'develop', String $environment = 'develop', Stdlib::Absolutepath $autosign = '/etc/puppetlabs/puppet/autosign.conf', Stdlib::Absolutepath $default_manifest = "${codedir}/environments/${default_environment}/manifests", String $reports = 'puppetdb', Boolean $storeconfigs = true, String $storeconfigs_backend = 'puppetdb', Boolean $usecacheonfailure = false, Boolean $report = true, Integer $runinterval = 1800, Integer $runtimeout = 3600, Boolean $show_diff = true, ) { file { '/etc/puppetlabs/puppet/puppet.conf': ensure => file, owner => 'root', group => 'root', mode => '0644', content => epp('profiles/puppet/server/puppet.conf.epp', { 'vardir' => $vardir, 'logdir' => $logdir, 'rundir' => $rundir, 'pidfile' => $pidfile, 'codedir' => $codedir, 'dns_alt_names' => join(sort($dns_alt_names), ','), 'server' => $agent_server, 'ca_server' => $ca_server, 'environment' => $environment, 'report' => $report, 'runinterval' => $runinterval, 'runtimeout' => $runtimeout, 'show_diff' => $show_diff, 'report_server' => $report_server, 'node_terminus' => $node_terminus, 'external_nodes' => $external_nodes, 'autosign' => $autosign, 'default_manifest' => $default_manifest, 'default_environment' => $default_environment, 'storeconfigs' => $storeconfigs, 'storeconfigs_backend' => $storeconfigs_backend, 'reports' => $reports, 'usecacheonfailure' => $usecacheonfailure, }), notify => Service['puppetserver'], } service { 'puppetserver': ensure => running, enable => true, hasstatus => true, hasrestart => true, } }