summaryrefslogtreecommitdiff
path: root/manifests/init.pp
blob: 345456237b34da885f174d42bd10afb117de6230 (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
42
43
44
45
46
47
48
49
50
51
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)
}