Index: modules/nginx/manifests/init.pp |
=================================================================== |
--- a/modules/nginx/manifests/init.pp |
+++ b/modules/nginx/manifests/init.pp |
@@ -41,45 +41,83 @@ class nginx ( |
require => Package['nginx'] |
} |
file {'/etc/nginx/sites-enabled': |
ensure => directory, |
require => Package['nginx'] |
} |
- file {'/etc/nginx/sites-available/default': |
- ensure => absent, |
- require => Package['nginx'] |
- } |
+ define hostconfig ( |
+ $domain = $title, |
+ $alt_names = [], |
+ $log, |
+ $is_default = false, |
+ $source = undef, |
+ $content = undef, |
+ $global_config = undef, |
+ $certificate = undef, |
+ $private_key = undef, |
+ $enabled = true) { |
+ file {"/etc/nginx/sites-available/${domain}": |
+ ensure => file, |
+ content => template('nginx/site.erb'), |
+ require => Package['nginx'], |
+ notify => Service['nginx'], |
+ } |
- define hostconfig ($file = $title, $source = undef, $content = undef, $enabled = false) { |
- if $content != undef { |
- file {"/etc/nginx/sites-available/${file}": |
- ensure => file, |
- content => $content, |
- require => Package['nginx'], |
- notify => Service['nginx'], |
+ if $certificate and $private_key { |
+ if !defined(File["/etc/nginx/${certificate}"]) { |
+ file {"/etc/nginx/${certificate}": |
+ ensure => file, |
+ mode => 0400, |
+ notify => Service['nginx'], |
+ before => File["/etc/nginx/sites-available/${domain}"], |
+ require => Package['nginx'], |
+ source => "puppet:///modules/private/${certificate}" |
+ } |
+ } |
+ |
+ if !defined(File["/etc/nginx/${private_key}"]) { |
+ file {"/etc/nginx/${private_key}": |
+ ensure => file, |
+ mode => 0400, |
+ notify => Service['nginx'], |
+ before => File["/etc/nginx/sites-available/${domain}"], |
+ require => Package['nginx'], |
+ source => "puppet:///modules/private/${private_key}" |
+ } |
+ } |
+ |
+ if !defined(File["/etc/nginx/sites-available/${certificate}"]) { |
+ file {"/etc/nginx/sites-available/${certificate}": |
+ ensure => absent |
+ } |
+ } |
+ |
+ if !defined(File["/etc/nginx/sites-available/${private_key}"]) { |
+ file {"/etc/nginx/sites-available/${private_key}": |
+ ensure => absent |
+ } |
} |
} |
- else { |
- file {"/etc/nginx/sites-available/${file}": |
- ensure => file, |
- source => $source, |
- require => Package['nginx'], |
- notify => Service['nginx'], |
+ |
+ if $enabled == true { |
+ file {"/etc/nginx/sites-enabled/${domain}": |
+ ensure => link, |
+ require => File["/etc/nginx/sites-available/${domain}"], |
+ target => "/etc/nginx/sites-available/${domain}", |
+ notify => Service['nginx'] |
} |
} |
- if $enabled == true { |
- file {"/etc/nginx/sites-enabled/${file}": |
- ensure => link, |
- require => File["/etc/nginx/sites-available/${file}"], |
- target => "/etc/nginx/sites-available/${file}", |
- notify => Service['nginx'] |
- } |
+ |
+ file {"/etc/logrotate.d/nginx_$domain": |
+ ensure => file, |
+ require => File["/etc/nginx/sites-available/${domain}"], |
+ content => template('nginx/logrotate.erb') |
} |
} |
file {'/etc/logrotate.d/nginx': |
source => 'puppet:///modules/nginx/logrotate', |
require => Package['nginx'] |
} |