Forge Home

webapp

Installs and configuers generic webapps

8,568 downloads

5,749 latest version

4.6 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.3.0 (latest)
  • 0.2.0
  • 0.1.4
released Apr 19th 2018
This version is compatible with:

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'icann-webapp', '0.3.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add icann-webapp
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install icann-webapp --version 0.3.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

icann/webapp — version 0.3.0 Apr 19th 2018

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