1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
[puppet-python](https://github.com/stankevich/puppet-python)
======
Puppet module for installing and managing python, pip, virtualenvs and Gunicorn virtual hosts.
## Usage
### python
Installs and manages python, python-dev, python-virtualenv and Gunicorn.
**version** — Python version to install. Default: system default
**dev** — Install python-dev. Default: false
**virtualenv** — Install python-virtualenv. Default: false
**gunicorn** — Install Gunicorn. Default: false
class { 'python':
version => 'system',
dev => true,
virtualenv => true,
gunicorn => true,
}
### python::pip
Installs and manages packages from pip.
**ensure** — present/absent. Default: present
**virtualenv** — virtualenv to run pip in.
**url** — URL to install from. Default: none
**proxy** — Proxy server to use for outbound connections. Default: none
python::pip { 'flask':
virtualenv => '/var/www/project1',
proxy => 'http://proxy.domain.com:3128',
}
### python::requirements
Installs and manages Python packages from requirements file.
**virtualenv** — virtualenv to run pip in. Default: system-wide
**proxy** — Proxy server to use for outbound connections. Default: none
python::requirements { '/var/www/project1/requirements.txt':
virtualenv => '/var/www/project1',
proxy => 'http://proxy.domain.com:3128',
}
### python::virtualenv
Creates Python virtualenv.
**ensure** — present/absent. Default: present
**version** — Python version to use. Default: system default
**requirements** — Path to pip requirements.txt file. Default: none
**proxy** — Proxy server to use for outbound connections. Default: none
**systempkgs** — Copy system site-packages into virtualenv. Default: don't
**distribute** — Include distribute in the virtualenv. Default: true
** owner ** - specify the owner of this virtualenv
** group ** - specify the group for this virtualenv
python::virtualenv { '/var/www/project1':
ensure => present,
version => 'system',
requirements => '/var/www/project1/requirements.txt',
proxy => 'http://proxy.domain.com:3128',
systempkgs => true,
distribute => false,
owner => 'appuser',
group => 'apps',
}
### python::gunicorn
Manages Gunicorn virtual hosts.
**ensure** — present/absent. Default: present
**virtualenv** — Run in virtualenv, specify directory. Default: disabled
**mode** — Gunicorn mode. wsgi/django. Default: wsgi
**dir** — Application directory.
**bind** — Bind on: 'HOST', 'HOST:PORT', 'unix:PATH'. Default: unix:/tmp/gunicorn-$name.socket or unix:${virtualenv}/${name}.socket
**environment** — Set ENVIRONMENT variable. Default: none
**template** — Which ERB template to use. Default: python/gunicorn.erb
python::gunicorn { 'vhost':
ensure => present,
virtualenv => '/var/www/project1',
mode => 'wsgi',
dir => '/var/www/project1/current',
bind => 'unix:/tmp/gunicorn.socket',
environment => 'prod',
template => 'python/gunicorn.erb',
}
## Authors
[Sergey Stankevich](https://github.com/stankevich)
[Ashley Penney](https://github.com/apenney)
[Marc Fournier](https://github.com/mfournier)
|