feat: add puppetboard backend

- add balancemember to puppetboard nodes
- add be_puppetboard to haproxxy
- add puppetboard.main.unkin.net to haproxy altnames
- add puppetboard to backend mapping
- change way backends are registered in haproxy
This commit is contained in:
2024-04-06 03:38:17 +11:00
parent dc428543cf
commit 105bf1b09d
3 changed files with 65 additions and 12 deletions
+11 -3
View File
@@ -51,10 +51,18 @@ class profiles::haproxy::server (
include profiles::haproxy::fe_http # default http frontend
include profiles::haproxy::fe_https # default https frontend
$backends = lookup('haproxy::backend').keys
$backends.each |$backend| {
# for each backend:
$backends = lookup('profiles::haproxy::backends')
$backends.each |$backend, $data| {
# create backend
haproxy::backend { $backend:
* => $data,
}
# collect exported resources
$location_environment = "${facts['country']}-${facts['region']}-${facts['environment']}"
$tag = "${location_environment}_${backend}"
$tag = "${backend}_${location_environment}"
Haproxy::Balancermember <<| tag == $tag |>>
}
}
+31 -6
View File
@@ -121,13 +121,38 @@ class profiles::puppet::puppetboard (
location_alias => "${virtualenv_dir}/lib/python${python_version}/site-packages/puppetboard/static",
}
# export haproxy balancemember
profiles::haproxy::balancemember { "${facts['networking']['fqdn']}_${nginx_port}}":
service => 'be_puppetboard',
ports => [$nginx_port],
options => [
"cookie ${facts['networking']['hostname']}",
'check',
'inter 2s',
'rise 3',
'fall 2',
]
}
#@@haproxy::balancermember { "${facts['networking']['fqdn']}_${nginx_port}}":
# listening_service => 'be_puppetboard',
# ports => [$nginx_port],
# server_names => $facts['networking']['hostname'],
# ipaddresses => $facts['networking']['ip'],
# options => [
# "cookie ${facts['networking']['hostname']}",
# 'check',
# 'inter 2s',
# 'rise 3',
# 'fall 2',
# ]
#}
# if selinux is defined, manage it
if $::facts['os']['selinux']['config_mode'] == 'enforcing' {
# if selinux is defined, manage it
if $::facts['os']['selinux']['config_mode'] == 'enforcing' {
# call the nginx selinux class
class { 'profiles::selinux::nginx':
require => Class['Nginx'],
}
# call the nginx selinux class
class { 'profiles::selinux::nginx':
require => Class['Nginx'],
}
}
}