diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/init.pp | 69 |
1 files changed, 48 insertions, 21 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index efd6760..b8fb5aa 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,9 +1,27 @@ +# This module is distributed under the GNU Affero General Public License: +# +# Nginx module for puppet +# Copyright (C) 2010 Sarava Group +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + # TODO: check permission on SSL keys class nginx { - # the needed packages + # Setup packages package { "nginx": ensure => installed, } - # nginx service + # Nginx service service { "nginx": enable => true, ensure => running, @@ -11,29 +29,38 @@ class nginx { require => [ File["/etc/nginx/sites-enabled/$domain"], Package["nginx"] ], } - # proxy config file - file { "/etc/nginx/sites-available/$domain": - source => "puppet://$server/files/etc/nginx/$domain", + # Config folders, see http://projects.reductivelabs.com/issues/86 + file { [ "/etc/nginx", "/etc/nginx/sites-available", "/etc/nginx/sites-enabled" ]: + ensure => directory, owner => "root", group => "root", - mode => 0644, - ensure => present, - notify => Service["nginx"], - require => File["/etc/nginx/sites-available"], } - # symlink to enable proxy configuration - file { "/etc/nginx/sites-enabled/$domain": - ensure => "/etc/nginx/sites-available/$domain", - require => File["/etc/nginx/sites-enabled"], - notify => Service["nginx"], - } + # Default site + site { "$domain": ensure => present, } - # config folders - # see http://projects.reductivelabs.com/issues/86 - file { [ "/etc/nginx", "/etc/nginx/sites-available", "/etc/nginx/sites-enabled" ]: - ensure => directory, - owner => "root", - group => "root", + define site($site = $domain, $ensure = present) { + # Proxy config file + file { "/etc/nginx/sites-available/$site": + source => "puppet://$server/files/etc/nginx/$site", + owner => "root", + group => "root", + mode => 0644, + ensure => $ensure, + notify => Service["nginx"], + require => File["/etc/nginx/sites-available"], + } + + $link = $ensure ? { + present => "/etc/nginx/sites-available/$site", + default => absent, + } + + # Symlink to enable proxy configuration + file { "/etc/nginx/sites-enabled/$site": + ensure => $link, + require => File["/etc/nginx/sites-enabled"], + notify => Service["nginx"], + } } } |