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