# Class: profiles::puppet::client # # This class manages Puppet client 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. # # site/profile/manifests/puppet/client.pp class profiles::puppet::client ( String $dns_alt_names = $trusted['certname'], String $server = 'puppetmaster', String $ca_server = 'puppetca', String $environment = 'develop', Integer $runinterval = 1800, Integer $runtimeout = 3600, Boolean $show_diff = true, Boolean $usecacheonfailure = false, String $puppet_version = 'latest', ) { # Ensure the puppet-agent package is installed and locked to a specific version package { 'puppet-agent': ensure => $puppet_version, } # Ensure the puppet service is running service { 'puppet': ensure => 'running', enable => true, hasrestart => true, require => Package['puppet-agent'], } # Assuming you want to manage puppet.conf with this profile file { '/etc/puppetlabs/puppet/puppet.conf': ensure => 'present', content => template('profiles/puppet/client/puppet.conf.erb'), owner => 'root', group => 'root', mode => '0644', notify => Service['puppet'], } }