# profiles::puppet::agent # This class manages Puppet agent package and service. class profiles::puppet::agent ( String $puppet_version = 'latest', ) { # if puppet-version is anything other than latest, set a versionlock $puppet_versionlock_ensure = $puppet_version ? { 'latest' => 'absent', default => 'present', } $puppet_versionlock_version = $puppet_version ? { 'latest' => undef, default => $puppet_version, } case $facts['os']['family'] { 'RedHat': { # Ensure the puppet-agent package is installed and locked to a specific version package { 'puppet-agent': ensure => $puppet_version, require => Yumrepo['puppet'], } # versionlock puppet-agent yum::versionlock{'puppet-agent': ensure => $puppet_versionlock_ensure, version => $puppet_versionlock_version, } } 'Debian': { # Ensure the puppet-agent package is installed and locked to a specific version package { 'puppet-agent': ensure => $puppet_version, require => Class['profiles::apt::puppet7'], } } default: {} } # Ensure the puppet service is running service { 'puppet': ensure => 'running', enable => true, hasrestart => true, require => Package['puppet-agent'], } }