From 532a4eee5fb4efe2bc09902a450ceeb53d908e31 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 18 Jan 2013 17:33:52 -0200 Subject: Split classes across files --- manifests/base.pp | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 manifests/base.pp (limited to 'manifests/base.pp') 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"], + } +} -- cgit v1.2.3