Puppet Class: puppet::server::compat
- Inherits:
- puppet::globals
- Defined in:
- manifests/server/compat.pp
Summary
Ensures compatibility and proper setup for Puppet ServerOverview
This class addresses specific compatibility issues and prepares the Puppet Server environment. It ensures required directories exist, installs necessary Ruby gems for Puppet Server, and configures ‘puppetserver.conf` to include settings such as additional Ruby load paths. This makes it possible to install puppetdb-termini package from Ubuntu 22.04 on Ubuntu 24.04
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'manifests/server/compat.pp', line 10
class puppet::server::compat inherits puppet::globals {
$gem_home = $puppet::globals::server_gem_home
$config = $puppet::globals::config
if $puppet::globals::use_compat_mode {
# Ensures required directories exist to prevent errors during puppetserver package installation, e.g.
# error creating symbolic link '/usr/share/puppet/modules/mailalias.dpkg-tmp': No such file or directory
file {
['/usr/share/puppet',
'/usr/share/puppet/modules']:
ensure => directory,
before => Package['puppet-server'],
}
# Installs required Puppet Server gems
# Lookup using eyaml lookup_key function is only supported when the hiera_eyaml library is present
exec {
default:
path => '/usr/bin:/bin',
require => Package['puppet-server'],
;
'puppetserver gem install hiera-eyaml --no-document --version 4.2.0':
creates => "${gem_home}/gems/hiera-eyaml-4.2.0",
;
'puppetserver gem install scanf --no-document --version 1.0.0':
creates => "${gem_home}/gems/scanf-1.0.0",
;
}
# setup puppetserver.conf (Ubuntu 24.04) with puppetdb-termini from 22.04
# include /opt/puppetlabs/puppet/lib/ruby/vendor_ruby into ruby-load-path
file { "${config}/puppetserver.conf":
ensure => file,
content => template('puppet/puppetserver.conf.erb'),
require => Package['puppet-server'],
}
}
}
|