]> gitweb.fluxo.info Git - puppet-nginx.git/commitdiff
Adding site definition
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 1 Jan 2010 15:26:41 +0000 (13:26 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 1 Jan 2010 15:26:41 +0000 (13:26 -0200)
manifests/init.pp

index efd67604b37c6369a8ab548204595405c45efaf3..b8fb5aaee9f750051bd06f275b95aaffca3d2a28 100644 (file)
@@ -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"],
+    }
   }
 }