summaryrefslogtreecommitdiff
path: root/manifests/base.pp
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-01-18 17:33:52 -0200
committerSilvio Rhatto <rhatto@riseup.net>2013-01-18 17:33:52 -0200
commit532a4eee5fb4efe2bc09902a450ceeb53d908e31 (patch)
tree2b79e72a5b5ea1a1f672b4c4e0d6668938dc52ec /manifests/base.pp
parentacf5e40d9b38de5be299f876d0e6c221ccebbe30 (diff)
downloadpuppet-nginx-532a4eee5fb4efe2bc09902a450ceeb53d908e31.tar.gz
puppet-nginx-532a4eee5fb4efe2bc09902a450ceeb53d908e31.tar.bz2
Split classes across files
Diffstat (limited to 'manifests/base.pp')
-rw-r--r--manifests/base.pp85
1 files changed, 85 insertions, 0 deletions
diff --git a/manifests/base.pp b/manifests/base.pp
new file mode 100644
index 0000000..cc1bb4a
--- /dev/null
+++ b/manifests/base.pp
@@ -0,0 +1,85 @@
+# Base class
+class nginx::base {
+
+ $ssl = $nginx_ssl ? {
+ false => false,
+ default => true,
+ }
+
+ # Setup packages
+ package { "nginx": ensure => installed, }
+
+ # 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",
+ }
+
+ service { "nginx":
+ enable => true,
+ ensure => running,
+ hasrestart => true,
+ require => Package["nginx"],
+ }
+
+ define site($ensure = present, $source = 'file') {
+ # Proxy config file
+ case $source {
+ 'file': {
+ file { "/etc/nginx/sites-available/$name":
+ source => "puppet:///modules/site-nginx/$name",
+ owner => "root",
+ group => "root",
+ mode => 0644,
+ ensure => $ensure,
+ notify => Service["nginx"],
+ require => File["/etc/nginx/sites-available"],
+ }
+ }
+ 'template': {
+ file { "/etc/nginx/sites-available/$name":
+ content => template("nginx/$name.erb"),
+ owner => "root",
+ group => "root",
+ mode => 0644,
+ ensure => $ensure,
+ notify => Service["nginx"],
+ require => File["/etc/nginx/sites-available"],
+ }
+ }
+ 'none': {
+ file { "/etc/nginx/sites-available/$name":
+ owner => "root",
+ group => "root",
+ mode => 0644,
+ ensure => $ensure,
+ notify => Service["nginx"],
+ require => File["/etc/nginx/sites-available"],
+ }
+ }
+ }
+
+ $link = $ensure ? {
+ present => "/etc/nginx/sites-available/$name",
+ default => absent,
+ }
+
+ # Symlink to enable proxy configuration
+ file { "/etc/nginx/sites-enabled/$name":
+ ensure => $link,
+ require => File["/etc/nginx/sites-enabled"],
+ notify => Service["nginx"],
+ }
+ }
+
+ # Main configuration
+ file { "/etc/nginx/nginx.conf":
+ content => template("nginx/nginx.conf.erb"),
+ owner => "root",
+ group => "root",
+ mode => 0644,
+ ensure => present,
+ notify => Service["nginx"],
+ }
+}