puppet-uwsgi

用于安装和管理uwsgi的puppet模块。(A puppet module for installing and managing uwsgi.)

  • 所有者: rvdh/puppet-uwsgi
  • 平台: Linux, Mac, Windows
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

puppet-uwsgi

A puppet module for installing and managing uwsgi

Description

This module installs and configures uWSGI
in Emperor mode.

It can also create and manage uwsgi applications that run under the emperor,
which are best defined in hiera.

Just about every option is configurable, so it should work on most distributions
by putting together a hiera file.

Classes

uwsgi

The main entry point. Simply include uwsgi to accept all the default
parameters. The service file template will, by default, auto-configure itself for
redhat init.d or upstart depending on the service provider.

Parameters

  • package_name
    The package name to install.
    Default: 'uwsgi'

  • package_ensure
    Package state.
    Default: 'installed'

    If 'absent' or 'purged', then remove the service_file and config_file
    also

  • package_provider
    The provider to use to install the package.
    Default: 'pip'

  • service_name
    The name of the service to run uwsgi.
    Default: 'uwsgi'

  • service_file
    The location of the service file.
    Default: '/etc/init/uwsgi.conf'

  • service_template
    The location of the template to generate the service_file.
    Default: 'uwsgi/uwsgi_upstart.conf.erb'

  • service_ensure
    The service state.
    Default: true

  • service_enable
    The service onboot state.
    Default: true

  • service_provider
    The service provider.
    Default: 'upstart'

    upstart is required for the default service_file, and
    works on RedHat 6. Setting service_provider to redhat
    will now deploy the init.d service file, unless you specifically
    set service_template etc.
    systemd will create a systemd service on RedHat 7 and Debian 8.

  • manage_service_file
    Whether to override the system service file if it exists.
    Default: true

  • binary_directory
    Default: '/usr/sbin'

    Directory containing the uwsgi binary. Used by the systemd
    service_provider; not used by the upstart or redhat service_provider
    parameter.

  • config_file
    The location of the uwsgi config file.
    Default: '/etc/uwsgi.ini'

  • log_dir
    The location of the uwsgi emperor log.
    Default: '/var/log/uwsgi/uwsgi-emperor.log'

  • log_rotate
    Whether or not to deploy a logrotate script.
    Accepts: 'yes', 'no', 'purge'
    Default: 'no'

  • app_directory
    Vassal directory for application config files.

    RedHat default: '/etc/uwsgi.d'
    Other default: '/etc/uwsgi/apps-enabled'

  • install_pip
    Install pip if it's not already installed?
    Default: true

  • install_python_dev
    Install python header files if not already installed?
    Default: true

  • python_pip
    Package to be installed for pip
    Default: 'python-pip'

  • python_dev
    Package to be installed for python headers
    Default RedHat: 'python-devel'
    Default Other: 'python-dev'

  • emperor_options
    Extra options to set in the emperor config file. Default: undef

Using Hiera

Sets up some custom options within the emperor config file:

---
uwsgi::emperor_options:
  vacuum: 'True'
  reload-mercy: 8

Don't manage python or pip, and use apt-get to install uwsgi. Don't manage
the service file, as it will be provided by the package itself:

---
uwsgi::install_pip: false
uwsgi::install_python_dev: false
uwsgi::package_provider: 'apt'
uwsgi::manage_service_file: false

Remove uwsgi:

---
uwsgi::package_ensure: 'absent'
uwsgi::service_ensure: false
uwsgi::service_enable: false
uwsgi::install_pip: false
uwsgi::install_python_dev: false

Defined Types

uwsgi::app

Responsible for creating uwsgi applications that run under the uwsgi emperor.
You shouldn't need to use this type directly, as the uwsgi class will
automatically create all applications defined in hiera under the uwsgi::app
key. See the hiera section below for examples.

Parameters

  • ensure
    Ensure the config file exists. Default: 'present'

  • template
    The template used to construct the config file.
    Default: 'uwsgi/uwsgi_app.ini.erb'

  • uid
    The user to run the application as. Required.
    May be the user name, not just the id.

  • gid
    The group to run the application as. Required.
    May be the group name, not just the id.

  • application_options
    Extra options to set in the application config file

  • environment_variables
    Extra environment variabls to set in the application config file

Using Hiera

Configure a django application:

---
uwsgi::app:
  django:
    ensure: 'present'
    uid: 'django'
    gid: 'django'
    application_options:
      chdir: '/path/to/project'
      module: 'mysite.wsgi:application'
      socket: '/tmp/uwsgi_django.sock'
      master: 'True'
      vaccum: 'True'
      max-requests: '5000'
      buffer-size: '32768'
      processes: 4
      threads: 8

Configure multiple applications (all yaml files are aggregated using
hiera_hash):

# common.yaml
---
uwsgi::app:
  django_1:
    ensure: 'present'
    uid: 'django'
    gid: 'django'
    application_options:
      chdir: '/path/to/project'
      module: 'mysite.wsgi:application'
      socket: '/tmp/uwsgi_django.sock'


# role_app_server.yaml
---
uwsgi::app:
  django_2:
    ensure: 'present'
    uid: 'django'
    gid: 'django'
    application_options:
      chdir: '/path/to/project2'
      module: 'mysite.wsgi:application'
      socket: '/tmp/uwsgi_django2.sock'

Example using hiera to use Debian Jessie APT packages & default file locations

---
classes:
  - uwsgi
uwsgi::package_name:
  - 'uwsgi-emperor'
  - 'uwsgi-plugins-all'
uwsgi::package_provider: 'apt'
uwsgi::service_name: 'uwsgi-emperor'
uwsgi::service_provider: 'debian'
uwsgi::manage_service_file: false
uwsgi::config_file: '/etc/uwsgi-emperor/emperor.ini'
uwsgi::log_dir: '/var/log/uwsgi/emperor.log'
uwsgi::app_directory: '/etc/uwsgi-emperor/vassals'
uwsgi::install_pip: false
uwsgi::install_python_dev: false
uwsgi::socket: undef
uwsgi::pidfile: '/run/uwsgi-emperor.pid'
uwsgi::emperor_options:
  uid: 'www-data'
  gid: 'www-data'
  workers: '2'
  no-orphans: 'true'

Contributers

Contributions will be gratefully accepted. Please go to the project page,
fork the project, make your changes locally and then raise a pull request.
Details on how to do this are available at
https://guides.github.com/activities/contributing-to-open-source.

Additional Contributers

Release, PR/Issue/commit, Contributer
-------------, -------------------------------------------------------------------------------------------------------------------, ----------------------------------------
1.3.1, Add systemd support for Debian 8, @rvdh
1.3.0, Add systemd support, @andy-s-clark
1.3.0, Make tyrant mode configurable, @TravellingGuy
1.3.0, Additional Options, @elmerfud
1.2.0, Support repeated application options by passing an array of values, @rayl
1.1.0, Fix typo in Upstart script, @Kodapa
1.1.0, Support multiple env options, @kimor79
1.0.1, Fix logging when using init.d, @kimor79
1.0.0, init.d support, @kimor79
0.9.0, @jarshwah

主要指標

概覽
名稱與所有者rvdh/puppet-uwsgi
主編程語言Puppet
編程語言HTML (語言數: 3)
平台Linux, Mac, Windows
許可證MIT License
所有者活动
創建於2014-05-23 12:41:45
推送於2017-09-26 12:55:23
最后一次提交2016-11-04 11:51:26
發布數2
最新版本名稱release-1.2.0 (發布於 )
第一版名稱release-1.1.0 (發布於 )
用户参与
星數6
關注者數4
派生數28
提交數53
已啟用問題?
問題數8
打開的問題數4
拉請求數12
打開的拉請求數3
關閉的拉請求數3
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?