Skip to content

icann-dns/puppet-webapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Puppet Forge Puppet Forge Downloads

webapp

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with webapp
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Overview

This modules is used to deploy simple web apps

Module Description

The modules is intended to deploy simple web applications. Currently it only supports deploying a python web app, in this case it will create the following

Setup

What webapp affects

  • create an apache vhost
  • create python virtual environment
  • clone a git repo

Setup Requirements

  • puppetlabs-stdlib 4.11.0
  • puppetlabs-vcsrepo 1.3.2
  • puppetlabs-apache 1.10.0
  • stankevich-python 1.12.0

Beginning with webapp

add the webapp class with a python app

class {'::webapp' 
  python_apps => {
    'test' => {
      git_source  => 'git@git.example.com:root/example.git',
      domain_name => 'test.example.com',
    }
}

Or add the python apps to hiera

webapp::python_apps:
  test:
    git_source: 'git@git.example.com:root/example.git'
    domain_name: 'test.example.com'

Reference

Classes

Public Classes

Private Classes

Class: webapp

Main class, includes all other classes

Parameters (all optional)
  • web_root (Path, Default: /srv/www): where to install the web applications
  • python_apps (Hash, Default: {}): A hash of webapp::python objects

Defines

Public Defines

Define: webapp::python

  • system_packages (Array, Default: []): Install any stystem packages that the web app may depend on
  • pip_packages (Array, Default: []): Install pip packages into the virtual environment for the web app
  • git_source (String, Default: undef, Required): The source of the git repo
  • git_revision (String, Default: 'master'): The revision/branch to clone
  • git_user (String, Default: 'root'): The user to use when cloning the git repo
  • domain_name (String, Default: undef, Required): The domwain name to use for the virtual host
  • docroot_subfolder (Path, Default: /): The folder, relative to the repo where web files are
  • wsgi_script_aliases (String, Default: 'webapp.wsgi'): file reletive to the webapp root dir to use as the wsgi script
  • use_ssl (Bool, Default: false): if true configure apache with ssl
  • ssl_cert (Path, Default: undef): path to ssl certificat
  • ssl_key (Path, Default: undef): path to ssl key
  • ssl_chain (Path, Default: undef): path to ssl chain
  • options (Array, Default: ['Indexes','FollowSymLinks','MultiViews']): Array of apache vhost options
  • conr_jobs (Hash, Default: {}): hash of cron types to configure

Define: webapp::python

  • system_packages (Array, Default: []): Install any stystem packages that the web app may depend on
  • git_source (String, Default: undef, Required): The source of the git repo
  • git_revision (String, Default: 'master'): The revision/branch to clone
  • user (String, Default: 'root'): The user to use when cloning the git repo and the permissions for the webroot
  • domain_name (String, Default: undef, Required): The domwain name to use for the virtual host
  • docroot_subfolder (Path, Default: /): The folder, relative to the repo where web files are
  • use_ssl (Bool, Default: false): if true configure apache with ssl
  • ssl_cert (Path, Default: undef): path to ssl certificat
  • ssl_key (Path, Default: undef): path to ssl key
  • ssl_chain (Path, Default: undef): path to ssl chain
  • options (Array, Default: ['Indexes','FollowSymLinks','MultiViews']): Array of apache vhost options
  • conr_jobs (Hash, Default: {}): hash of cron types to configure

Limitations

This is where you list OS compatibility, version compatibility, etc.

Development

This module is tested on Ubuntu 12.04, and 14.04 and FreeBSD 10