class website_blog_2 ( String $blog_root, String $certname, String $domain, Hash[String,Hash] $blogs = {}, Optional[Array[String]] $domain_aliases = undef, String $blog_server_name = 'blog-server', ) { ensure_packages(['website-blog-2', 'php-fpm']) file { '/var/website-blog-2': ensure => directory, } file { '/var/website-blog-2/.workdirs': ensure => directory, } $default = { access_log => 'absent', error_log => 'absent', ssl => true, ssl_redirect => true, ssl_cert => "/etc/letsencrypt/live/${certname}/fullchain.pem", ssl_key => "/etc/letsencrypt/live/${certname}/privkey.pem", use_default_location => false, } include ::nginx nginx::resource::server { $blog_server_name: * => $default, server_name => [ $domain, ], index_files => [ 'index.php', 'index.html', 'index.htm', ], www_root => $blog_root, } if $domain_aliases { nginx::resource::server { "${blog_server_name}-aliases": * => $default, server_name => $domain_aliases, server_cfg_append => { 'return' => '301 $scheme://blog.hornquist.se$request_uri', }, } } create_resources(website_blog_2::instance, $blogs) }