class website_blog_2 ( String $blog_root, String $domain, String $certname = $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, } letsencrypt::cert { $certname: include_self => false, domains => $domain_aliases << $domain, authenticator => 'nginx', } $default = { access_log => 'absent', error_log => 'absent', use_default_location => false, } + letsencrypt::conf::nginx($domain) 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://${domain}\$request_uri", }, } } create_resources(website_blog_2::instance, $blogs) }