summaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: 8d159d46c7c0a2ae0bfda3387fb4f409eafd2b70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class blog (
  String $blog_root,
  String $certname,
  String $domain,
  Hash[String,Hash] $blogs = {},
  Optional[Array[String]] $domain_aliases = undef,
  String $blog_server_name = 'blog-server',
) {


  $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::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(blog::instance, $blogs)
}