A cookbook for managing python-related resources in a simple way
This is mostly a ripoff of the python cookbook, since it's both deprecated and has its resource names stolen by poise-python cookbook
Resources:
backslasher_python_pip_installer: Makes sure a python envrionment has pip installedbackslasher_python_pip: A pip packagebackslasher_python_virtualenv: A virtual environment
Supported Platforms
Should work on normal Linux boxes. Possibly on Windows.
I'm testing on:
- Ubuntu 14.04
- CentOS 6 (6.7)
- CentOS 7 (7.1)
Attributes
['backslasher-python']['install_method']: How to install python. Defaults topackage. I'm currently not supoorting any other method.
Recipes
backslasher-python::default
The works - installs Python, pip and virtualenv.
Python is installed according to ['backslasher-python']['install_method']
backslasher-python::package
Installs python using the repo's packages.
Provides both python runtime and Python development headers
backslasher-python::pip
Installs pip on the "regular" Python (the one available as python)
backslasher-python::virtualenv
Installs the virtualenv pip package on the "regular" Python. Also makes sure pip is installed.
Resources
backslasher_python_pip_installer
Installs pip on a specific python executable
Properties
python_path: Python binary to install pip on.
Defaults topython, which should find the "system" python
Note: This action might overwrite the "primary" pip binary. There is no easy way to avoid this since there is no way to instruct setuptools not to create "entry points". I'll happily accept a PR for fixing this.
backslasher_python_pip
Installs/removed/upgrades a pip package
Actions
install: Install the pip packageupgrade: Upgrade the pip package if it is uninstalled / has version mismatch. Will upgrade to latest by default.remove: Remove the pip package if installed
Properties
python_path: Python binary to install on.
Not relevant if usingvirtualenvproperty.
Defaults topython, which should find the "system" python.package_name: Pip package to install. Defaults to the resource's name- ``package_url
: Optional. Used to specify a URL to install the package from (e.g.pip install git+git://git.myproject.org/MyProject#egg=MyProject`) version: Optional. Specifies a pip version to installvirtualenv: Optional. Specifies a virtualenv path to install/remove the pip package intimeout: Time allotted for pip commands. Defaults to 900 seconds (15 min)- ``user`: User to run the commands under
group: Group to run the commands underenvironment: Hash of environment variables to pass to the pip commandsinstall_options: An array of arguments to pass to the pip commands when installing / upgrading packagessmart\_install: Uses a python script to check if package should be installed. Avoids running pip (and marking the resource as updated) "for nothing". Does not work in edge cases, so disabled by default.
backslasher_virtualenv
Manages a python virtualenv
Actions
create: Creates the virtualenvdelete: Deletes the virtualenv
Properties
path: Location inside the filesystem of the virtualenv. Defaults to the resource's nameinterpreter: Optional. Python binary used for venv. Defaults to the system pythonowner: Optional. Owning user of the virtualenvgroup: Optional. Owning group of the virtualenvoptions: Optional. A string of arguments to pass the virtualenv creator
License and Authors
Licensed GPL v2
Author: Nitzan Raz (backslasher)
I'll be happy to accept contributions or to hear from you!