reite / puppet-nginx

Puppet Module to manage NGINX on various UNIXes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NGINX Module

James Fryman james@frymanet.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 { 'nginx': }
      nginx::resource::vhost { 'www.puppetlabs.com':
        ensure   => present,
        www_root => '/var/www/www.puppetlabs.com',
      }
    }

Add a Proxy Server(s)

   node default {
     class { 'nginx': }
     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',
     }
   } 

Add an smtp proxy

   node default {
     class { 'nginx':
       mail => true,
     }
     nginx::resource::mailhost { 'domain1.example':
       ensure      => present,
       auth_http   => 'server2.example/cgi-bin/auth',
       protocol    => 'smtp',
       listen_port => 587,
       ssl_port    => 465,
       starttls    => 'only',
       xclient     => 'off',
       ssl         => 'true',
       ssl_cert    => '/tmp/server.crt',
       ssl_key     => '/tmp/server.pem',
     }
   }

Hiera Support

Define the nginx resources in Hiera. Here are the examples:

nginx::nginx_upstreams:
  'puppet_rack_app':
    ensure: present
    members:
      - localhost:3000
      - localhost:3001
      - localhost:3002 
nginx::nginx_vhosts:
  'www.puppetlabs.com':
    www_root: '/var/www/www.puppetlabs.com'
  'rack.puppetlabs.com':
    ensure: present
    proxy: 'http://puppet_rack_app'
nginx::nginx_locations:
  'static':
    location: '~ "^/static/[0-9a-fA-F]{8}\/(.*)$"'
    vhost: www.puppetlabs.com
  'userContent':
    location: /userContent
    vhost: www.puppetlabs.com
    www_root: /var/www/html

About

Puppet Module to manage NGINX on various UNIXes

License:Other


Languages

Language:Puppet 91.6%Language:Ruby 8.4%