summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFotis Gimian <fgimiansoftware@gmail.com>2013-06-04 09:36:33 +1000
committerFotis Gimian <fgimiansoftware@gmail.com>2013-06-04 09:36:33 +1000
commit01bf2791ecadfbb954b947fefa8b15ca0c0b9947 (patch)
treed8834cafc4c4b203071f96fa9b627ad8a2cb3844
parent5132cf1798d862e28f9c9355a2e01a96f585f28f (diff)
Amended all documentation and updated version to 1.1.0
-rw-r--r--Modulefile2
-rw-r--r--README.md87
-rw-r--r--manifests/pip.pp7
-rw-r--r--manifests/requirements.pp7
-rw-r--r--manifests/virtualenv.pp10
5 files changed, 84 insertions, 29 deletions
diff --git a/Modulefile b/Modulefile
index c7f2f97..e132e99 100644
--- a/Modulefile
+++ b/Modulefile
@@ -1,5 +1,5 @@
name 'puppet-python'
-version '1.0.0'
+version '1.1.0'
author 'Sergey Stankevich'
license 'Apache License, Version 2.0'
diff --git a/README.md b/README.md
index 5a4c8b5..1108ba0 100644
--- a/README.md
+++ b/README.md
@@ -3,19 +3,36 @@
Puppet module for installing and managing python, pip, virtualenvs and Gunicorn virtual hosts.
+**Version 1.1.0 Notes**
+
+Version 1.1.0 makes several fundamental changes to the core of this module, adding some additional features, improving performance and making operations more robust in general.
+
+Please note that everal changes have been made in v1.1.0 which make manifests incompatible with the previous version. However, modifying your manifests to suit is trivial. Please see the notes below.
+
+Currently, the changes you need to make are as follows:
+
+* All pip definitions MUST include the owner field which specifies which user owns the virtualenv that packages will be installed in. Adding this greatly improves performance and efficiency of this module.
+
+## Installation
+
+``` bash
+cd /etc/puppet/modules
+git clone git://github.com/stankevich/puppet-python.git
+```
+
## Usage
### python
Installs and manages python, python-dev, python-virtualenv and Gunicorn.
-**version** — Python version to install. Default: system default
+**version** - Python version to install. Default: system default
-**dev** — Install python-dev. Default: false
+**dev** - Install python-dev. Default: false
-**virtualenv** — Install python-virtualenv. Default: false
+**virtualenv** - Install python-virtualenv. Default: false
-**gunicorn** — Install Gunicorn. Default: false
+**gunicorn** - Install Gunicorn. Default: false
class { 'python':
version => 'system',
@@ -28,52 +45,65 @@ Installs and manages python, python-dev, python-virtualenv and Gunicorn.
Installs and manages packages from pip.
-**ensure** — present/absent. Default: present
+**ensure** - present/absent. Default: present
-**virtualenv** — virtualenv to run pip in.
+**virtualenv** - virtualenv to run pip in. Default: system (no virtualenv)
-**url** — URL to install from. Default: none
+**url** - URL to install from. Default: none
-**proxy** — Proxy server to use for outbound connections. Default: none
+**owner** - The owner of the virtualenv to ensure that packages are installed with the correct permissions (must be specified). Default: root
- python::pip { 'flask':
- virtualenv => '/var/www/project1',
- proxy => 'http://proxy.domain.com:3128',
+**proxy** - Proxy server to use for outbound connections. Default: none
+
+**environment** - Additional environment variables required to install the packages. Default: none
+
+ python::pip { 'cx_Oracle':
+ virtualenv => '/var/www/project1',
+ owner => 'appuser',
+ proxy => 'http://proxy.domain.com:3128',
+ environment => 'ORACLE_HOME=/usr/lib/oracle/11.2/client64',
}
### python::requirements
Installs and manages Python packages from requirements file.
-**virtualenv** — virtualenv to run pip in. Default: system-wide
+**virtualenv** - virtualenv to run pip in. Default: system-wide
+
+**proxy** - Proxy server to use for outbound connections. Default: none
+
+**owner** - The owner of the virtualenv to ensure that packages are installed with the correct permissions (must be specified). Default: root
-**proxy** — Proxy server to use for outbound connections. Default: none
+**group** - The group that was used to create the virtualenv. This is used to create the requirements file with correct permissions if it's not present already.
python::requirements { '/var/www/project1/requirements.txt':
virtualenv => '/var/www/project1',
proxy => 'http://proxy.domain.com:3128',
+ owner => 'appuser',
+ group => 'apps',
}
### python::virtualenv
Creates Python virtualenv.
-**ensure** — present/absent. Default: present
+**ensure** - present/absent. Default: present
-**version** — Python version to use. Default: system default
+**version** - Python version to use. Default: system default
-**requirements** — Path to pip requirements.txt file. Default: none
+**requirements** - Path to pip requirements.txt file. Default: none
-**proxy** — Proxy server to use for outbound connections. Default: none
+**proxy** - Proxy server to use for outbound connections. Default: none
-**systempkgs** — Copy system site-packages into virtualenv. Default: don't
+**systempkgs** - Copy system site-packages into virtualenv. Default: don't
-**distribute** — Include distribute in the virtualenv. Default: true
+**distribute** - Include distribute in the virtualenv. Default: true
-** owner ** - specify the owner of this virtualenv
+**owner** - Specify the owner of this virtualenv
-** group ** - specify the group for this virtualenv
+**group** - Specify the group for this virtualenv
+**index** - Base URL of Python package index. Default: none
python::virtualenv { '/var/www/project1':
ensure => present,
@@ -90,19 +120,19 @@ Creates Python virtualenv.
Manages Gunicorn virtual hosts.
-**ensure** — present/absent. Default: present
+**ensure** - present/absent. Default: present
-**virtualenv** — Run in virtualenv, specify directory. Default: disabled
+**virtualenv** - Run in virtualenv, specify directory. Default: disabled
-**mode** — Gunicorn mode. wsgi/django. Default: wsgi
+**mode** - Gunicorn mode. wsgi/django. Default: wsgi
-**dir** — Application directory.
+**dir** - Application directory.
-**bind** — Bind on: 'HOST', 'HOST:PORT', 'unix:PATH'. Default: unix:/tmp/gunicorn-$name.socket or unix:${virtualenv}/${name}.socket
+**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
+**environment** - Set ENVIRONMENT variable. Default: none
-**template** — Which ERB template to use. Default: python/gunicorn.erb
+**template** - Which ERB template to use. Default: python/gunicorn.erb
python::gunicorn { 'vhost':
ensure => present,
@@ -119,3 +149,4 @@ Manages Gunicorn virtual hosts.
[Sergey Stankevich](https://github.com/stankevich)
[Ashley Penney](https://github.com/apenney)
[Marc Fournier](https://github.com/mfournier)
+[Fotis Gimian](https://github.com/fgimian)
diff --git a/manifests/pip.pp b/manifests/pip.pp
index 3940374..a9805d3 100644
--- a/manifests/pip.pp
+++ b/manifests/pip.pp
@@ -13,9 +13,15 @@
# [*url*]
# URL to install from. Default: none
#
+# [*owner*]
+# The owner of the virtualenv being manipulated. Default: root
+#
# [*proxy*]
# Proxy server to use for outbound connections. Default: none
#
+# [*environment*]
+# Additional environment variables required to install the packages. Default: none
+#
# === Examples
#
# python::pip { 'flask':
@@ -26,6 +32,7 @@
# === Authors
#
# Sergey Stankevich
+# Fotis Gimian
#
define python::pip (
$ensure = present,
diff --git a/manifests/requirements.pp b/manifests/requirements.pp
index 3019a46..789c0d3 100644
--- a/manifests/requirements.pp
+++ b/manifests/requirements.pp
@@ -13,6 +13,12 @@
# [*proxy*]
# Proxy server to use for outbound connections. Default: none
#
+# [*owner*]
+# The owner of the virtualenv being manipulated. Default: root
+#
+# [*group*]
+# The group relating to the virtualenv being manipulated. Default: root
+#
# === Examples
#
# python::requirements { '/var/www/project1/requirements.txt':
@@ -24,6 +30,7 @@
#
# Sergey Stankevich
# Ashley Penney
+# Fotis Gimian
#
define python::requirements (
$requirements = $name,
diff --git a/manifests/virtualenv.pp b/manifests/virtualenv.pp
index 684a417..f45678b 100644
--- a/manifests/virtualenv.pp
+++ b/manifests/virtualenv.pp
@@ -22,6 +22,15 @@
# [*distribute*]
# Include distribute in the virtualenv. Default: true
#
+# [*owner*]
+# The owner of the virtualenv being manipulated. Default: root
+#
+# [*group*]
+# The group relating to the virtualenv being manipulated. Default: root
+#
+# [*index*]
+# Base URL of Python package index. Default: none (http://pypi.python.org/simple/)
+#
# === Examples
#
# python::virtualenv { '/var/www/project1':
@@ -38,6 +47,7 @@
# Sergey Stankevich
# Ashley Penney
# Marc Fournier
+# Fotis Gimian
#
define python::virtualenv (
$ensure = present,