Mercurial > repos > other > Puppet
view modules/python/REFERENCE.md @ 335:aa9f570d6a9c
Switch to PHP 7.4 now that NextCloud has reached v18
7.3 only lasted until December 2020 with active support.
7.4 is good until December 2021 with security until 2022.
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 22 Mar 2020 19:41:50 +0000 |
parents | c42fb28cff86 |
children | 66c075c5f54a |
line wrap: on
line source
# Reference <!-- DO NOT EDIT: This document was generated by Puppet Strings --> ## Table of Contents **Classes** _Public Classes_ * [`python`](#python): Installs and manages python, python-dev, python-virtualenv and gunicorn. * [`python::pip::bootstrap`](#pythonpipbootstrap): allow to bootstrap pip when python is managed from other module _Private Classes_ * `python::config`: Optionally installs the gunicorn service * `python::install`: Installs core python packages * `python::params`: The python Module default configuration settings. **Defined types** * [`python::dotfile`](#pythondotfile): Manages any python dotfiles with a simple config hash. * [`python::gunicorn`](#pythongunicorn): Manages Gunicorn virtual hosts. * [`python::pip`](#pythonpip): Installs and manages packages from pip. * [`python::pyvenv`](#pythonpyvenv): Create a Python3 virtualenv using pyvenv. * [`python::requirements`](#pythonrequirements): Installs and manages Python packages from requirements file. * [`python::virtualenv`](#pythonvirtualenv): Creates Python virtualenv. ## Classes ### python Installs and manages python, python-dev, python-virtualenv and gunicorn. #### Examples ##### install python from system python ```puppet class { 'python': version => 'system', pip => 'present', dev => 'present', virtualenv => 'present', gunicorn => 'present', } ``` ##### install python3 from scl repo ```puppet class { 'python' : ensure => 'present', version => 'rh-python36-python', dev => 'present', virtualenv => 'present', } ``` #### Parameters The following parameters are available in the `python` class. ##### `ensure` Data type: `Enum['absent', 'present', 'latest']` Desired installation state for the Python package. Default value: $python::params::ensure ##### `version` Data type: `Any` Python version to install. Beware that valid values for this differ a) by the provider you choose and b) by the osfamily/operatingsystem you are using. Allowed values: - provider == pip: everything pip allows as a version after the 'python==' - else: 'system', 'pypy', 3/3.3/... - Be aware that 'system' usually means python 2.X. - 'pypy' actually lets us use pypy as python. - 3/3.3/... means you are going to install the python3/python3.3/... package, if available on your osfamily. Default value: $python::params::version ##### `pip` Data type: `Enum['absent', 'present', 'latest']` Desired installation state for the python-pip package. Default value: $python::params::pip ##### `dev` Data type: `Enum['absent', 'present', 'latest']` Desired installation state for the python-dev package. Default value: $python::params::dev ##### `virtualenv` Data type: `Enum['absent', 'present', 'latest']` Desired installation state for the virtualenv package Default value: $python::params::virtualenv ##### `gunicorn` Data type: `Enum['absent', 'present', 'latest']` Desired installation state for Gunicorn. Default value: $python::params::gunicorn ##### `manage_gunicorn` Data type: `Boolean` Allow Installation / Removal of Gunicorn. Default value: $python::params::manage_gunicorn ##### `provider` Data type: `Optional[Enum['pip', 'scl', 'rhscl', 'anaconda', '']]` What provider to use for installation of the packages, except gunicorn and Python itself. Default value: $python::params::provider ##### `use_epel` Data type: `Boolean` to determine if the epel class is used. Default value: $python::params::use_epel ##### `manage_scl` Data type: `Boolean` Whether to manage core SCL packages or not. Default value: $python::params::manage_scl ##### `umask` Data type: `Optional[Pattern[/[0-7]{1,4}/]]` The default umask for invoked exec calls. Default value: `undef` ##### `gunicorn_package_name` Data type: `Any` Default value: $python::params::gunicorn_package_name ##### `valid_versions` Data type: `Any` Default value: $python::params::valid_versions ##### `python_pips` Data type: `Hash` Default value: { } ##### `python_virtualenvs` Data type: `Hash` Default value: { } ##### `python_pyvenvs` Data type: `Hash` Default value: { } ##### `python_requirements` Data type: `Hash` Default value: { } ##### `python_dotfiles` Data type: `Hash` Default value: { } ##### `rhscl_use_public_repository` Data type: `Any` Default value: $python::params::rhscl_use_public_repository ##### `anaconda_installer_url` Data type: `Stdlib::Httpurl` Default value: $python::params::anaconda_installer_url ##### `anaconda_install_path` Data type: `Stdlib::Absolutepath` Default value: $python::params::anaconda_install_path ### python::pip::bootstrap allow to bootstrap pip when python is managed from other module #### Examples ##### ```puppet class { 'python::pip::bootstrap': version => 'pip', } ``` #### Parameters The following parameters are available in the `python::pip::bootstrap` class. ##### `version` Data type: `Enum['pip', 'pip3']` should be pip or pip3 Default value: 'pip' ##### `manage_python` Data type: `Variant[Boolean, String]` if python module will manage deps Default value: `false` ##### `http_proxy` Data type: `Optional[Stdlib::HTTPUrl]` Proxy server to use for outbound connections. Default value: `undef` ## Defined types ### python::dotfile Manages any python dotfiles with a simple config hash. #### Examples ##### Create a pip config in /var/lib/jenkins/.pip/ ```puppet python::dotfile { '/var/lib/jenkins/.pip/pip.conf': ensure => present, owner => 'jenkins', group => 'jenkins', config => { 'global' => { 'index-url' => 'https://mypypi.acme.com/simple/' 'extra-index-url' => 'https://pypi.risedev.at/simple/' } } } ``` #### Parameters The following parameters are available in the `python::dotfile` defined type. ##### `ensure` Data type: `Enum['absent', 'present']` Default value: 'present' ##### `filename` Data type: `String[1]` Filename. Default value: $title ##### `mode` Data type: `Stdlib::Filemode` File mode. Default value: '0644' ##### `owner` Data type: `String[1]` user owner of dotfile Default value: 'root' ##### `group` Data type: `String[1]` group owner of dotfile Default value: 'root' ##### `config` Data type: `Hash` Config hash. This will be expanded to an ini-file. Default value: {} ### python::gunicorn Manages Gunicorn virtual hosts. #### Examples ##### run gunicorn on vhost in virtualenv /var/www/project1 ```puppet python::gunicorn { 'vhost': ensure => present, virtualenv => '/var/www/project1', mode => 'wsgi', dir => '/var/www/project1/current', bind => 'unix:/tmp/gunicorn.socket', environment => 'prod', owner => 'www-data', group => 'www-data', appmodule => 'app:app', osenv => { 'DBHOST' => 'dbserver.example.com' }, timeout => 30, template => 'python/gunicorn.erb', } ``` #### Parameters The following parameters are available in the `python::gunicorn` defined type. ##### `ensure` Data type: `Enum['present', 'absent']` Default value: present ##### `config_dir` Data type: `Any` Configure the gunicorn config directory path. Default value: '/etc/gunicorn.d' ##### `manage_config_dir` Data type: `Any` Set if the gunicorn config directory should be created. Default value: `false` ##### `virtualenv` Data type: `Any` Run in virtualenv, specify directory. Default value: `false` ##### `mode` Data type: `Enum['wsgi', 'django']` Gunicorn mode. Default value: 'wsgi' ##### `dir` Data type: `Stdlib::Absolutepath` Application directory. ##### `bind` Data type: `Any` Bind on: 'HOST', 'HOST:PORT', 'unix:PATH'. Default: system-wide: unix:/tmp/gunicorn-$name.socket virtualenv: unix:${virtualenv}/${name}.socket Default value: `false` ##### `environment` Data type: `Any` Set ENVIRONMENT variable. Default value: `false` ##### `appmodule` Data type: `Any` Set the application module name for gunicorn to load when not using Django. Default value: 'app:app' ##### `osenv` Data type: `Any` Allows setting environment variables for the gunicorn service. Accepts a hash of 'key': 'value' pairs. Default value: `false` ##### `timeout` Data type: `Any` Allows setting the gunicorn idle worker process time before being killed. The unit of time is seconds. Default value: 30 ##### `template` Data type: `Any` Which ERB template to use. Default value: 'python/gunicorn.erb' ##### `args` Data type: `Any` Custom arguments to add in gunicorn config file. Default value: [] ##### `owner` Data type: `Any` Default value: 'www-data' ##### `group` Data type: `Any` Default value: 'www-data' ##### `workers` Data type: `Any` Default value: `false` ##### `access_log_format` Data type: `Any` Default value: `false` ##### `accesslog` Data type: `Any` Default value: `false` ##### `errorlog` Data type: `Any` Default value: `false` ##### `log_level` Data type: `Enum['debug', 'info', 'warning', 'error', 'critical']` Default value: 'error' ### python::pip Installs and manages packages from pip. #### Examples ##### Install Flask to /var/www/project1 using a proxy ```puppet python::pip { 'flask': virtualenv => '/var/www/project1', proxy => 'http://proxy.domain.com:3128', index => 'http://www.example.com/simple/', } ``` ##### Install cx_Oracle with pip ```puppet python::pip { 'cx_Oracle' : pkgname => 'cx_Oracle', ensure => '5.1.2', virtualenv => '/var/www/project1', owner => 'appuser', proxy => 'http://proxy.domain.com:3128', environment => 'ORACLE_HOME=/usr/lib/oracle/11.2/client64', install_args => '-e', timeout => 1800, } ``` ##### Install Requests with pip3 ```puppet python::pip { 'requests' : ensure => 'present', pkgname => 'requests', pip_provider => 'pip3', virtualenv => '/var/www/project1', owner => 'root', timeout => 1800 } ``` #### Parameters The following parameters are available in the `python::pip` defined type. ##### `name` must be unique ##### `pkgname` Data type: `String` the name of the package. Default value: $name ##### `ensure` Data type: `Variant[Enum[present, absent, latest], String[1]]` Require pip to be available. Default value: present ##### `virtualenv` Data type: `Variant[Enum['system'], Stdlib::Absolutepath]` virtualenv to run pip in. Default value: 'system' ##### `pip_provider` Data type: `String[1]` version of pip you wish to use. Default value: 'pip' ##### `url` Data type: `Variant[Boolean, String]` URL to install from. Default value: `false` ##### `owner` Data type: `String[1]` The owner of the virtualenv being manipulated. Default value: 'root' ##### `group` Data type: `Any` The group of the virtualenv being manipulated. Default value: getvar('python::params::group') ##### `index` Data type: `Any` Base URL of Python package index. Default value: `false` ##### `proxy` Data type: `Optional[Stdlib::HTTPUrl]` Proxy server to use for outbound connections. Default value: `undef` ##### `editable` Data type: `Boolean` If true the package is installed as an editable resource. Default value: `false` ##### `environment` Data type: `Any` Additional environment variables required to install the packages. Default value: [] ##### `extras` Data type: `Any` Extra features provided by the package which should be installed. Default value: [] ##### `timeout` Data type: `Numeric` The maximum time in seconds the "pip install" command should take. Default value: 1800 ##### `install_args` Data type: `String` Any additional installation arguments that will be supplied when running pip install. Default value: '' ##### `uninstall_args` Data type: `String` Any additional arguments that will be supplied when running pip uninstall. Default value: '' ##### `log_dir` Data type: `String[1]` Log directory Default value: '/tmp' ##### `egg` Data type: `Any` The egg name to use Default value: `false` ##### `umask` Data type: `Any` Default value: `undef` ##### `path` Data type: `Array[String]` Default value: ['/usr/local/bin','/usr/bin','/bin', '/usr/sbin'] ### python::pyvenv Create a Python3 virtualenv using pyvenv. #### Examples ##### ```puppet python::pyvenv { '/var/www/project1' : ensure => present, version => 'system', systempkgs => true, venv_dir => '/home/appuser/virtualenvs', owner => 'appuser', group => 'apps', } ``` #### Parameters The following parameters are available in the `python::pyvenv` defined type. ##### `ensure` Data type: `Any` Default value: present ##### `version` Data type: `Any` Python version to use. Default value: 'system' ##### `systempkgs` Data type: `Any` Copy system site-packages into virtualenv Default value: `false` ##### `venv_dir` Data type: `Any` Directory to install virtualenv to Default value: $name ##### `owner` Data type: `Any` The owner of the virtualenv being manipulated Default value: 'root' ##### `group` Data type: `Any` The group relating to the virtualenv being manipulated Default value: 'root' ##### `mode` Data type: `Any` Optionally specify directory mode Default value: '0755' ##### `path` Data type: `Any` Specifies the PATH variable. Default value: [ '/bin', '/usr/bin', '/usr/sbin', '/usr/local/bin' ] ##### `environment` Data type: `Any` Optionally specify environment variables for pyvenv Default value: [] ### python::requirements Installs and manages Python packages from requirements file. #### Examples ##### install pip requirements from /var/www/project1/requirements.txt ```puppet python::requirements { '/var/www/project1/requirements.txt' : virtualenv => '/var/www/project1', proxy => 'http://proxy.domain.com:3128', owner => 'appuser', group => 'apps', } ``` #### Parameters The following parameters are available in the `python::requirements` defined type. ##### `requirements` Data type: `Any` Path to the requirements file. Default value: $name ##### `virtualenv` Data type: `Any` virtualenv to run pip in. Default value: 'system' ##### `pip_provider` Data type: `Enum['pip', 'pip3']` version of pip you wish to use. Default value: 'pip' ##### `owner` Data type: `Any` The owner of the virtualenv being manipulated. Default value: 'root' ##### `group` Data type: `Any` The group relating to the virtualenv being manipulated. Default value: 'root' ##### `proxy` Data type: `Optional[Stdlib::HTTPUrl]` Proxy server to use for outbound connections. Default value: `undef` ##### `src` Data type: `Any` Pip --src parameter to; if the requirements file contains --editable resources, this parameter specifies where they will be installed. See the pip documentation for more. Default value: `false` ##### `environment` Data type: `Any` Additional environment variables required to install the packages. Default value: [] ##### `forceupdate` Data type: `Any` Run a pip install requirements even if we don't receive an event from the requirements file - Useful for when the requirements file is written as part of a resource other than file (E.g vcsrepo) Default value: `false` ##### `cwd` Data type: `Any` The directory from which to run the "pip install" command. Default value: `undef` ##### `extra_pip_args` Data type: `Any` Extra arguments to pass to pip after the requirements file Default value: '' ##### `manage_requirements` Data type: `Any` Create the requirements file if it doesn't exist. Default value: `true` ##### `fix_requirements_owner` Data type: `Any` Change owner and group of requirements file. Default value: `true` ##### `log_dir` Data type: `Any` Log directory. Default value: '/tmp' ##### `timeout` Data type: `Any` The maximum time in seconds the "pip install" command should take. Default value: 1800 ### python::virtualenv Creates Python virtualenv. #### Examples ##### install a virtual env at /var/www/project1 ```puppet python::virtualenv { '/var/www/project1': ensure => present, version => 'system', requirements => '/var/www/project1/requirements.txt', proxy => 'http://proxy.domain.com:3128', systempkgs => true, index => 'http://www.example.com/simple/', } ``` #### Parameters The following parameters are available in the `python::virtualenv` defined type. ##### `ensure` Data type: `Any` Default value: 'present' ##### `version` Data type: `Any` Python version to use. Default value: 'system' ##### `requirements` Data type: `Any` Path to pip requirements.txt file Default value: `false` ##### `systempkgs` Data type: `Any` Copy system site-packages into virtualenv. Default value: `false` ##### `venv_dir` Data type: `Any` Directory to install virtualenv to Default value: $name ##### `ensure_venv_dir` Data type: `Any` Create $venv_dir Default value: `true` ##### `distribute` Data type: `Any` Include distribute in the virtualenv Default value: `true` ##### `index` Data type: `Any` Base URL of Python package index Default value: `false` ##### `owner` Data type: `Any` The owner of the virtualenv being manipulated Default value: 'root' ##### `group` Data type: `Any` The group relating to the virtualenv being manipulated Default value: 'root' ##### `mode` Data type: `Any` Optionally specify directory mode Default value: '0755' ##### `proxy` Data type: `Optional[Stdlib::HTTPUrl]` Proxy server to use for outbound connections Default value: `undef` ##### `environment` Data type: `Any` Additional environment variables required to install the packages Default value: [] ##### `path` Data type: `Any` Specifies the PATH variable Default value: [ '/bin', '/usr/bin', '/usr/sbin', '/usr/local/bin' ] ##### `cwd` Data type: `Any` The directory from which to run the "pip install" command Default value: `undef` ##### `timeout` Data type: `Any` The maximum time in seconds the "pip install" command should take Default value: 1800 ##### `pip_args` Data type: `Any` Arguments to pass to pip during initialization Default value: '' ##### `extra_pip_args` Data type: `Any` Extra arguments to pass to pip after requirements file Default value: '' ##### `virtualenv` Data type: `Any` Default value: `undef`