Skip to content

Commit 7320a0a

Browse files
committed
Updated Documentation
1 parent 995b472 commit 7320a0a

12 files changed

+249
-0
lines changed

README.markdown

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# NGINX Module
2+
3+
James Fryman <jamison@puppetlabs.com>
4+
5+
This module manages NGINX from within Puppet.
6+
7+
# Quick Start
8+
9+
Install and bootstrap an NGINX instance
10+
11+
node default {
12+
class { 'nginx': }
13+
}
14+
15+
Setup a new virtual host
16+
17+
node default {
18+
class { 'mcollective': }
19+
nginx::resource::vhost { 'www.puppetlabs.com':
20+
ensure => present,
21+
www_root => '/var/www/www.puppetlabs.com',
22+
}
23+
}
24+
25+
Add a Proxy Server(s)
26+
node default {
27+
class { 'mcollective': }
28+
nginx::resource::upstream { 'puppet_rack_app':
29+
ensure => present,
30+
members => [
31+
'localhost:3000',
32+
'localhost:3001',
33+
'localhost:3002',
34+
],
35+
}
36+
nginx::resource::vhost { 'rack.puppetlabs.com':
37+
ensure => present,
38+
proxy => 'http://puppet_rack_app',
39+
}
40+
}

manifests/config.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::config
2+
#
3+
# This module manages NGINX bootstrap and configuration
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::config inherits nginx::params {
217
File {
318
owner => 'root',

manifests/init.pp

+25
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
# Class: nginx
2+
#
3+
# This module manages NGINX.
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class. All module parameters are managed
8+
# via the nginx::params class
9+
#
10+
# Actions:
11+
#
12+
# Requires:
13+
#
14+
# Packaged NGINX
15+
# - RHEL: EPEL or custom package
16+
# - Debian/Ubuntu: Default Install or custom package
17+
# - SuSE: Default Install or custom package
18+
#
19+
# Sample Usage:
20+
#
21+
# The module works with sensible defaults:
22+
#
23+
# node default {
24+
# include nginx
25+
# }
126
class nginx {
227
include nginx::package
328
include nginx::config

manifests/package.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::package
2+
#
3+
# This module manages NGINX package installation
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::package {
217
case $operatingsystem {
318
centos,fedora,rhel: {

manifests/package/debian.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::package::debian
2+
#
3+
# This module manages NGINX package installation on debian based systems
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::package::debian {
217
package { 'nginx':
318
ensure => present,

manifests/package/redhat.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::package::redhat
2+
#
3+
# This module manages NGINX package installation on RedHat based systems
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::package::redhat {
217
package { 'nginx':
318
ensure => present,

manifests/package/suse.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::package::suse
2+
#
3+
# This module manages NGINX package installation for SuSE based systems
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::package::suse {
217
package { 'nginx-0.8':
318
ensure => present,

manifests/params.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::params
2+
#
3+
# This module manages NGINX paramaters
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::params {
217
$nx_temp_dir = '/tmp'
318
$nx_run_dir = '/var/nginx'

manifests/resource/location.pp

+26
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
1+
# define: nginx::resource::location
2+
#
3+
# This definition creates a new location entry within a virtual host
4+
#
5+
# Parameters:
6+
# [*ensure*] - Enables or disables the specified location (present|absent)
7+
# [*vhost*] - Defines the default vHost for this location entry to include with
8+
# [*location*] - Specifies the URI associated with this location entry
9+
# [*www_root*] - Specifies the location on disk for files to be read from. Cannot be set in conjunction with $proxy
10+
# [*index_files*] - Default index files for NGINX to read when traversing a directory
11+
# [*proxy*] - Proxy server(s) for a location to connect to. Accepts a single value, can be used in conjunction
12+
# with nginx::resource::upstream
13+
# [*ssl*] - Indicates whether to setup SSL bindings for this location.
14+
# [*option*] - Reserved for future use
15+
#
16+
# Actions:
17+
#
18+
# Requires:
19+
#
20+
# Sample Usage:
21+
# nginx::resource::location { 'test2.local-bob':
22+
# ensure => present,
23+
# www_root => '/var/www/bob',
24+
# location => '/bob',
25+
# vhost => 'test2.local',
26+
# }
127
define nginx::resource::location(
228
$ensure = 'present',
329
$vhost = undef,

manifests/resource/upstream.pp

+21
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
# define: nginx::resource::upstream
2+
#
3+
# This definition creates a new upstream proxy entry for NGINX
4+
#
5+
# Parameters:
6+
# [*ensure*] - Enables or disables the specified location (present|absent)
7+
# [*members*] - Array of member URIs for NGINX to connect to. Must follow valid NGINX syntax.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
# nginx::resource::upstream { 'proxypass':
15+
# ensure => present,
16+
# members => [
17+
# 'localhost:3000',
18+
# 'localhost:3001',
19+
# 'localhost:3002',
20+
# ],
21+
# }
122
define nginx::resource::upstream (
223
$ensure = 'present',
324
$members

manifests/resource/vhost.pp

+32
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,35 @@
1+
# define: nginx::resource::location
2+
#
3+
# This definition creates a new location entry within a virtual host
4+
#
5+
# Parameters:
6+
# [*ensure*] - Enables or disables the specified location (present|absent)
7+
# [*listen_ip*] - Default IP Address for NGINX to listen with this vHost on. Defaults to all interfaces (*)
8+
# [*listen_port*] - Default IP Port for NGINX to listen with this vHost on. Defaults to TCP 80
9+
# [*ipv6_enable*] - BOOL value to enable/disable IPv6 support (false|true). Module will check to see if IPv6
10+
# support exists on your system before enabling.
11+
# [*ipv6_listen_ip*] - Default IPv6 Address for NGINX to listen with this vHost on. Defaults to all interfaces (::)
12+
# [*ipv6_listen_port*] - Default IPv6 Port for NGINX to listen with this vHost on. Defaults to TCP 80
13+
# [*index_files*] - Default index files for NGINX to read when traversing a directory
14+
# [*proxy*] - Proxy server(s) for a location to connect to. Accepts a single value, can be used in conjunction
15+
# with nginx::resource::upstream
16+
# [*ssl*] - Indicates whether to setup SSL bindings for this location.
17+
# [*ssl_cert*] - Pre-generated SSL Certificate file to reference for SSL Support. This is not generated by this module.
18+
# [*ssl_key*] - Pre-generated SSL Key file to reference for SSL Support. This is not generated by this module.
19+
# [*www_root*] - Specifies the location on disk for files to be read from. Cannot be set in conjunction with $proxy
20+
#
21+
# Actions:
22+
#
23+
# Requires:
24+
#
25+
# Sample Usage:
26+
# nginx::resource::vhost { 'test2.local':
27+
# ensure => present,
28+
# www_root => '/var/www/nginx-default',
29+
# ssl => 'true',
30+
# ssl_cert => '/tmp/server.crt',
31+
# ssl_key => '/tmp/server.pem',
32+
# }
133
define nginx::resource::vhost(
234
$ensure = 'enable',
335
$listen_ip = '*',

manifests/service.pp

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
# Class: nginx::service
2+
#
3+
# This module manages NGINX service management and vhost rebuild
4+
#
5+
# Parameters:
6+
#
7+
# There are no default parameters for this class.
8+
#
9+
# Actions:
10+
#
11+
# Requires:
12+
#
13+
# Sample Usage:
14+
#
15+
# This class file is not called directly
116
class nginx::service {
217
exec { 'rebuild-nginx-vhosts':
318
command => "/bin/cat ${nginx::params::nx_temp_dir}/nginx.d/* > ${nginx::params::nx_conf_dir}/conf.d/vhost_autogen.conf",

0 commit comments

Comments
 (0)