# 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. # server - Server's name. # node_terminus - Node terminus. # external_nodes - Path to the external node classifier script. # autosign - Path to the autosign script. # class profiles::puppet::server ( String $vardir, String $logdir, String $rundir, String $pidfile, String $codedir, Array[String[1]] $dns_alt_names, String $server, String $node_terminus, String $external_nodes, String $autosign, String $default_manifest, String $default_environment, Boolean $storeconfigs, String $storeconfigs_backend, ) { 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($dns_alt_names, ','), 'server' => $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, }), notify => Service['puppetserver'], } service { 'puppetserver': ensure => running, enable => true, hasstatus => true, hasrestart => true, } }