class profiles::puppetboard { # https://forge.puppet.com/modules/puppet/puppetboard/readme # Configure Apache class { 'apache': default_vhost => false, purge_configs => true, } $wsgi = $facts['os']['family'] ? { 'Debian' => { package_name => 'libapache2-mod-wsgi-py3', mod_path => '/usr/lib/apache2/modules/mod_wsgi.so', }, default => {} } class { 'apache::mod::wsgi': * => $wsgi, } # Configure puppetboard class { 'puppetboard': manage_git => true, manage_virtualenv => true, require => Class['puppetdb'], puppetdb_port => 8080, # Required for /metrics/ to work puppetdb_host => '127.0.0.1', enable_catalog => true, python_loglevel => 'info', offline_mode => true, } include ::letsencrypt ensure_packages(['python3-certbot-apache']) $certname = lookup('certname') letsencrypt::certonly { $certname: ensure => present, domains => [ $::fqdn, ], manage_cron => true, plugin => 'apache', additional_args => ['--quiet'], post_hook_commands => ['systemctl restart apache2'], } class { 'puppetboard::apache::vhost': vhost_name => $::fqdn, port => 80, } }