Updated Documentation
This commit is contained in:
parent
995b47213f
commit
7320a0ae56
12 changed files with 249 additions and 0 deletions
40
README.markdown
Normal file
40
README.markdown
Normal file
|
@ -0,0 +1,40 @@
|
|||
# NGINX Module
|
||||
|
||||
James Fryman <jamison@puppetlabs.com>
|
||||
|
||||
This module manages NGINX from within Puppet.
|
||||
|
||||
# Quick Start
|
||||
|
||||
Install and bootstrap an NGINX instance
|
||||
|
||||
node default {
|
||||
class { 'nginx': }
|
||||
}
|
||||
|
||||
Setup a new virtual host
|
||||
|
||||
node default {
|
||||
class { 'mcollective': }
|
||||
nginx::resource::vhost { 'www.puppetlabs.com':
|
||||
ensure => present,
|
||||
www_root => '/var/www/www.puppetlabs.com',
|
||||
}
|
||||
}
|
||||
|
||||
Add a Proxy Server(s)
|
||||
node default {
|
||||
class { 'mcollective': }
|
||||
nginx::resource::upstream { 'puppet_rack_app':
|
||||
ensure => present,
|
||||
members => [
|
||||
'localhost:3000',
|
||||
'localhost:3001',
|
||||
'localhost:3002',
|
||||
],
|
||||
}
|
||||
nginx::resource::vhost { 'rack.puppetlabs.com':
|
||||
ensure => present,
|
||||
proxy => 'http://puppet_rack_app',
|
||||
}
|
||||
}
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::config
|
||||
#
|
||||
# This module manages NGINX bootstrap and configuration
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::config inherits nginx::params {
|
||||
File {
|
||||
owner => 'root',
|
||||
|
|
|
@ -1,3 +1,28 @@
|
|||
# Class: nginx
|
||||
#
|
||||
# This module manages NGINX.
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class. All module parameters are managed
|
||||
# via the nginx::params class
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Packaged NGINX
|
||||
# - RHEL: EPEL or custom package
|
||||
# - Debian/Ubuntu: Default Install or custom package
|
||||
# - SuSE: Default Install or custom package
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# The module works with sensible defaults:
|
||||
#
|
||||
# node default {
|
||||
# include nginx
|
||||
# }
|
||||
class nginx {
|
||||
include nginx::package
|
||||
include nginx::config
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::package
|
||||
#
|
||||
# This module manages NGINX package installation
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::package {
|
||||
case $operatingsystem {
|
||||
centos,fedora,rhel: {
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::package::debian
|
||||
#
|
||||
# This module manages NGINX package installation on debian based systems
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::package::debian {
|
||||
package { 'nginx':
|
||||
ensure => present,
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::package::redhat
|
||||
#
|
||||
# This module manages NGINX package installation on RedHat based systems
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::package::redhat {
|
||||
package { 'nginx':
|
||||
ensure => present,
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::package::suse
|
||||
#
|
||||
# This module manages NGINX package installation for SuSE based systems
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::package::suse {
|
||||
package { 'nginx-0.8':
|
||||
ensure => present,
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::params
|
||||
#
|
||||
# This module manages NGINX paramaters
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::params {
|
||||
$nx_temp_dir = '/tmp'
|
||||
$nx_run_dir = '/var/nginx'
|
||||
|
|
|
@ -1,3 +1,29 @@
|
|||
# define: nginx::resource::location
|
||||
#
|
||||
# This definition creates a new location entry within a virtual host
|
||||
#
|
||||
# Parameters:
|
||||
# [*ensure*] - Enables or disables the specified location (present|absent)
|
||||
# [*vhost*] - Defines the default vHost for this location entry to include with
|
||||
# [*location*] - Specifies the URI associated with this location entry
|
||||
# [*www_root*] - Specifies the location on disk for files to be read from. Cannot be set in conjunction with $proxy
|
||||
# [*index_files*] - Default index files for NGINX to read when traversing a directory
|
||||
# [*proxy*] - Proxy server(s) for a location to connect to. Accepts a single value, can be used in conjunction
|
||||
# with nginx::resource::upstream
|
||||
# [*ssl*] - Indicates whether to setup SSL bindings for this location.
|
||||
# [*option*] - Reserved for future use
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
# nginx::resource::location { 'test2.local-bob':
|
||||
# ensure => present,
|
||||
# www_root => '/var/www/bob',
|
||||
# location => '/bob',
|
||||
# vhost => 'test2.local',
|
||||
# }
|
||||
define nginx::resource::location(
|
||||
$ensure = 'present',
|
||||
$vhost = undef,
|
||||
|
|
|
@ -1,3 +1,24 @@
|
|||
# define: nginx::resource::upstream
|
||||
#
|
||||
# This definition creates a new upstream proxy entry for NGINX
|
||||
#
|
||||
# Parameters:
|
||||
# [*ensure*] - Enables or disables the specified location (present|absent)
|
||||
# [*members*] - Array of member URIs for NGINX to connect to. Must follow valid NGINX syntax.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
# nginx::resource::upstream { 'proxypass':
|
||||
# ensure => present,
|
||||
# members => [
|
||||
# 'localhost:3000',
|
||||
# 'localhost:3001',
|
||||
# 'localhost:3002',
|
||||
# ],
|
||||
# }
|
||||
define nginx::resource::upstream (
|
||||
$ensure = 'present',
|
||||
$members
|
||||
|
|
|
@ -1,3 +1,35 @@
|
|||
# define: nginx::resource::location
|
||||
#
|
||||
# This definition creates a new location entry within a virtual host
|
||||
#
|
||||
# Parameters:
|
||||
# [*ensure*] - Enables or disables the specified location (present|absent)
|
||||
# [*listen_ip*] - Default IP Address for NGINX to listen with this vHost on. Defaults to all interfaces (*)
|
||||
# [*listen_port*] - Default IP Port for NGINX to listen with this vHost on. Defaults to TCP 80
|
||||
# [*ipv6_enable*] - BOOL value to enable/disable IPv6 support (false|true). Module will check to see if IPv6
|
||||
# support exists on your system before enabling.
|
||||
# [*ipv6_listen_ip*] - Default IPv6 Address for NGINX to listen with this vHost on. Defaults to all interfaces (::)
|
||||
# [*ipv6_listen_port*] - Default IPv6 Port for NGINX to listen with this vHost on. Defaults to TCP 80
|
||||
# [*index_files*] - Default index files for NGINX to read when traversing a directory
|
||||
# [*proxy*] - Proxy server(s) for a location to connect to. Accepts a single value, can be used in conjunction
|
||||
# with nginx::resource::upstream
|
||||
# [*ssl*] - Indicates whether to setup SSL bindings for this location.
|
||||
# [*ssl_cert*] - Pre-generated SSL Certificate file to reference for SSL Support. This is not generated by this module.
|
||||
# [*ssl_key*] - Pre-generated SSL Key file to reference for SSL Support. This is not generated by this module.
|
||||
# [*www_root*] - Specifies the location on disk for files to be read from. Cannot be set in conjunction with $proxy
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
# nginx::resource::vhost { 'test2.local':
|
||||
# ensure => present,
|
||||
# www_root => '/var/www/nginx-default',
|
||||
# ssl => 'true',
|
||||
# ssl_cert => '/tmp/server.crt',
|
||||
# ssl_key => '/tmp/server.pem',
|
||||
# }
|
||||
define nginx::resource::vhost(
|
||||
$ensure = 'enable',
|
||||
$listen_ip = '*',
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
# Class: nginx::service
|
||||
#
|
||||
# This module manages NGINX service management and vhost rebuild
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# There are no default parameters for this class.
|
||||
#
|
||||
# Actions:
|
||||
#
|
||||
# Requires:
|
||||
#
|
||||
# Sample Usage:
|
||||
#
|
||||
# This class file is not called directly
|
||||
class nginx::service {
|
||||
exec { 'rebuild-nginx-vhosts':
|
||||
command => "/bin/cat ${nginx::params::nx_temp_dir}/nginx.d/* > ${nginx::params::nx_conf_dir}/conf.d/vhost_autogen.conf",
|
||||
|
|
Loading…
Reference in a new issue