summaryrefslogtreecommitdiff
path: root/manifests/site.pp
blob: 983fc88e9bd8177011b82a5d5ef3b1a377ed82f1 (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
52
define nginx::site(
  $ensure         = present,
  $ssl            = present,
  $source         = 'template',
  $certbot        = true,
  $template       = 'site',
  $backend        = 'weblocal',
  $aliases        = "*.${name}",
  $cache          = false,
  $cache_levels   = '1:2',
  $cache_size     = '10m',
  $cache_inactive = '600s',
  $cache_max_size = '1m',
) {
  nginx::site::config { $name:
    ensure   => $ensure,
    source   => $source,
    template => $template,
    backend  => $backend,
    aliases  => $aliases,
  }

  # We should discover the best practices' way to
  # stop managing a certificate using certbot so
  # we can implement an ensurable properly.
  if $certbot == true and $ensure == 'present' {
    certbot::manage { $name:
      aliases  => $aliases,
      pre_hook => '/usr/sbin/service nginx restart',
      require  => Nginx::Site::Config[$name],
    }
  }

  nginx::site::config { "${name}-ssl":
    server_name => $name,
    ensure      => $ensure ? {
      'present' => $ssl,
      default   => absent,
    },
    source      => $source,
    template    => "${template}-ssl",
    backend     => $backend,
    aliases     => $aliases,
    require     => $certbot ? {
      true    => $ensure ? {
        'present' => Certbot::Manage[$name],
        default   => undef,
      },
      default => undef,
    }
  }
}