Puppet Class: classroom::virtual
- Inherits:
- classroom::params
- Defined in:
- manifests/virtual.pp
Overview
common configuration for all virtual classes
2 3 4 5 6 7 8 9 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'manifests/virtual.pp', line 2
class classroom::virtual (
String $control_repo,
Optional[Pattern[/\A(?:\w*-)*(\w*)\Z/]] $event_id = undef,
Optional[String] $event_pw = undef,
Variant[Enum['reduced'], Boolean] $jvm_tuning_profile = $classroom::params::jvm_tuning_profile,
Boolean $offline = $classroom::params::offline,
Array $plugin_list = $classroom::params::plugin_list,
) inherits classroom::params {
assert_private('This class should not be called directly')
if $classroom::params::role == 'master' {
include showoff
include classroom::master::dependencies::rubygems
include classroom::master::dependencies::dashboard
# Configure Hiera and install a Hiera data file to tune PE
class { 'classroom::master::tuning':
jvm_tuning_profile => $jvm_tuning_profile,
}
# make sure we have a deployment user
include classroom::master::deployer
# Configure performance logging
include classroom::master::perf_logging
# Set up gitea server
include classroom::master::gitea
$session_id = pick($event_pw, regsubst(String($event_id), '^(?:\w*-)+(\w*)$', '\1'), $classroom::params::session_id)
class { 'puppetfactory':
controlrepo => $control_repo,
plugins => $plugin_list,
gitserver => $classroom::params::gitserver,
repomodel => $classroom::params::repo_model,
usersuffix => $classroom::params::usersuffix,
dashboard_path => "${showoff::root}/courseware/_files/tests",
session => $session_id,
master => $fqdn,
privileged => false,
}
class { 'classroom::master::codemanager':
control_repo => $control_repo,
}
} elsif $classroom::params::role == 'proxy' {
include classroom::proxy
} else {
# ensure all nodes have this user, since it's used for file ownership in places
user { 'pe-puppet':
ensure => present,
}
# if we ever have universal classification for virtual agents, it will go here
include classroom::agent::hiera
include classroom::agent::packages
include classroom::agent::rubygems
unless $osfamily == 'windows' {
include classroom::agent::postfix_ipv4
# enable the local yum cache configured by puppetfactory
yumrepo { 'local':
ensure => 'present',
baseurl => 'file:///var/yum/mirror',
enabled => '1',
gpgcheck => '0',
priority => '1',
}
}
}
# configure gem installs
class { 'classroom::gemrc':
offline => $offline,
}
if $::osfamily == 'windows' {
include classroom::windows
}
else {
# fix augeas lens until it's updated in PE
include classroom::agent::augeas
}
}
|