Project

General

Profile

Download (2.02 KB) Statistics
| Branch: | Tag: | Revision:
# Install the puppet server
# @api private
class puppet::server::install {
# Mirror the relationship, as defined() is parse-order dependent
# Ensures 'puppet' user group is present before managing users
if defined(Class['foreman_proxy::config']) {
Class['puppet::server::install'] -> Class['foreman_proxy::config']
}
if defined(Class['foreman::config']) {
Class['puppet::server::install'] -> Class['foreman::config']
}

if $puppet::server::git_repo {
stdlib::ensure_packages(['git'])
}

if $puppet::server::manage_user {
$shell = $puppet::server::git_repo ? {
true => $facts['os']['family'] ? {
/^(FreeBSD|DragonFly)$/ => '/usr/local/bin/git-shell',
default => '/usr/bin/git-shell'
},
default => undef,
}

user { $puppet::server::user:
shell => $shell,
}

if $puppet::server::git_repo {
Package['git'] -> User[$puppet::server::user]
}
}

if $puppet::manage_packages == true or $puppet::manage_packages == 'server' {
$server_package = pick($puppet::server::package, 'puppetserver')
$server_version = pick($puppet::server::version, $puppet::version)

package { $server_package:
ensure => $server_version,
install_options => $puppet::package_install_options,
}

# Puppetserver 8 on EL 8 relies on JRE 11 or 17. This prefers JRE 17 by installing it first
if (
!$puppet::server::jvm_java_bin and
$facts['os']['family'] == 'RedHat' and $facts['os']['release']['major'] == '8' and
# This doesn't use server_version because we have 2 mechanisms to set the version
versioncmp(pick($puppet::server::puppetserver_version, $facts['puppetversion']), '8.0.0') >= 0
) {
# EL 8 packaging can install either Java 17 or Java 11, but we prefer Java 17
stdlib::ensure_packages(['jre-17-headless'])

Package['jre-17-headless'] -> Package[$server_package]
}

if $puppet::server::manage_user {
Package[$server_package] -> User[$puppet::server::user]
}
}
}
(4-4/7)