- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with webapp
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
This modules is used to deploy simple web apps
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
- create an apache vhost
- create python virtual environment
- clone a git repo
- puppetlabs-stdlib 4.11.0
- puppetlabs-vcsrepo 1.3.2
- puppetlabs-apache 1.10.0
- stankevich-python 1.12.0
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'
Main class, includes all other classes
web_root
(Path, Default: /srv/www): where to install the web applicationspython_apps
(Hash, Default: {}): A hash of webapp::python objects
system_packages
(Array, Default: []): Install any stystem packages that the web app may depend onpip_packages
(Array, Default: []): Install pip packages into the virtual environment for the web appgit_source
(String, Default: undef, Required): The source of the git repogit_revision
(String, Default: 'master'): The revision/branch to clonegit_user
(String, Default: 'root'): The user to use when cloning the git repodomain_name
(String, Default: undef, Required): The domwain name to use for the virtual hostdocroot_subfolder
(Path, Default: /): The folder, relative to the repo where web files arewsgi_script_aliases
(String, Default: 'webapp.wsgi'): file reletive to the webapp root dir to use as the wsgi scriptuse_ssl
(Bool, Default: false): if true configure apache with sslssl_cert
(Path, Default: undef): path to ssl certificatssl_key
(Path, Default: undef): path to ssl keyssl_chain
(Path, Default: undef): path to ssl chainoptions
(Array, Default: ['Indexes','FollowSymLinks','MultiViews']): Array of apache vhost optionsconr_jobs
(Hash, Default: {}): hash of cron types to configure
system_packages
(Array, Default: []): Install any stystem packages that the web app may depend ongit_source
(String, Default: undef, Required): The source of the git repogit_revision
(String, Default: 'master'): The revision/branch to cloneuser
(String, Default: 'root'): The user to use when cloning the git repo and the permissions for the webrootdomain_name
(String, Default: undef, Required): The domwain name to use for the virtual hostdocroot_subfolder
(Path, Default: /): The folder, relative to the repo where web files areuse_ssl
(Bool, Default: false): if true configure apache with sslssl_cert
(Path, Default: undef): path to ssl certificatssl_key
(Path, Default: undef): path to ssl keyssl_chain
(Path, Default: undef): path to ssl chainoptions
(Array, Default: ['Indexes','FollowSymLinks','MultiViews']): Array of apache vhost optionsconr_jobs
(Hash, Default: {}): hash of cron types to configure
This is where you list OS compatibility, version compatibility, etc.
This module is tested on Ubuntu 12.04, and 14.04 and FreeBSD 10