define proxmox::proxy_host (String[1] $target, Optional[String[1]] $overwrite_rh_certs = undef) { if $target =~ /^https:/ { $ssl_fragment = @("EOT") SSLProxyEngine on SSLProxyCheckPeerName off | EOT } else { $ssl_fragment = "" } file {"/etc/apache2/sites-enabled/$title.conf": content => @("EOT") MDomain $title ServerName $title Redirect permanent / https://$title/ ServerName $title SSLEngine on ProxyPass "/" "$target" ProxyPassReverse "/" "$target" ProxyPreservehost On $ssl_fragment | EOT , } ~> Service['apache2'] if $overwrite_rh_certs { $pveid = lookup("hostvars.'$overwrite_rh_certs'.proxmox.id"); file {"/usr/local/bin/notify_md_renewal_hook_$overwrite_rh_certs": content => @("EOT"/$) #!/bin/sh cp /etc/apache2/md/domains/$title/pubcert.pem /rpool/data/subvol-$pveid-disk-0/etc/pki/tls/certs/localhost.crt cp /etc/apache2/md/domains/$title/privkey.pem /rpool/data/subvol-$pveid-disk-0/etc/pki/tls/private/localhost.key pct exec $pveid systemctl restart httpd | EOT , mode => '0755', } } }