class puppet ( $ensure = 'present', $version = undef, $agent = true, $server = false, $facter_version = $ensure, $agent_cron = true, $puppetlabs_apt = true, $agent_norunifloggedin = false, $agent_daemonize = true, $agent_run_hour = '*/1', $agent_run_minute = '10', $agent_run_if_ipmatch = '', $agent_splay = true, $server_dns_alt_names = undef, $server_storeconfigs = false, $server_storeconfigs_backend = undef, $server_basemodulepath = undef, $server_reports = 'store', $server_passenger = true) { if $puppetlabs_apt { class { 'puppet::puppetlabs_apt': before => Class['puppet::facter'] } } if $version != undef { apt::pin { 'puppet': version => $version, packages => 'puppet*', priority => '100', } } class { 'puppet::facter': ensure => $facter_version, } ini_setting { 'puppet-templatedir': path => '/etc/puppet/puppet.conf', section => 'main', setting => 'templatedir', value => '$confidr/templates', ensure => 'absent'; } if $agent { class { 'puppet::agent': ensure => $ensure, version => $version, norunifloggedin => $agent_norunifloggedin, daemonize => $agent_daemonize, run_hour => $agent_run_hour, run_if_ipmatch => $agent_run_if_ipmatch, splay => $agent_splay, cron => $agent_cron, } } if $server { class { 'puppet::server': ensure => $ensure, version => $version, dns_alt_names => $server_dns_alt_names, storeconfigs => $server_storeconfigs, storeconfigs_backend => $server_storeconfigs_backend, reports => $server_reports, basemodulepath => $server_basemodulepath, passenger => $server_passenger; } } }