summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/init.pp69
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"],
+ }
}
}