--- /dev/null
+define nginx::certbot(
+ $aliases = ''
+ $ensure = 'present',
+ $email = hiera('nginx::certbot::email'),
+ $size = hiera('nginx::certbot::size', '4096'),
+){
+ # Certbot support
+ file { "/var/www/certbot/${name}":
+ ensure => $ensure,
+ owner => 'root',
+ group => 'www-data',
+ mode => '0750',
+ require => Package['certbot'],
+ }
+
+ exec { "certbot-${name}":
+ command => "/usr/bin/certbot certonly --webroot -w /var/www/certbot/${name} -d ${name} -m ${email} --rsa-key-size ${size} --agree-tos",
+ }
+}
-define nginx::site($ensure = present, $source = 'file') {
+define nginx::site(
+ $ensure = present,
+ $source = 'file',
+ $certbot = true
+) {
case $source {
'file': {
file { "/etc/nginx/sites-available/$name":
require => File["/etc/nginx/sites-enabled"],
notify => Service["nginx"],
}
+
+ if $certbot == true {
+ nginx::certbot { $name:
+ ensure => $ensure,
+ }
+ }
}
'ssl_prefer_server_ciphers': value => 'ssl_prefer_server_ciphers on;';
'ssl_dhparam': value => 'ssl_dhparam /etc/ssl/dhparams/dhparams_2048.pem;';
}
+
+ # Certbot support
+ file { '/var/www/certbot':
+ ensure => directory,
+ owner => 'root',
+ group => 'www-data',
+ mode => '0750',
+ require => Package['nginx'],
+ }
+
+ package { 'certbot':
+ ensure => present,
+ require => File['/var/www/certbot'],
+ }
}