cchurch.uwsgi
uWSGI
Instala uWSGI en modo emperador y configura los vasallos. Requiere Ansible 2.4 o posterior.
Variables del Rol
NOTA: ¡Algunos nombres de variables han cambiado desde las versiones 0.2.x!
Las siguientes variables se suelen definir para personalizar este rol:
uwsgi_install
: Método para instalar uWSGI; puede ser"pkg"
(predeterminado) para usar el gestor de paquetes del sistema o"pip"
para instalar a través de pip. Cualquier otro valor asume que uWSGI está instalado por otros medios.uwsgi_version
: Cuandouwsgi_install == "pip"
, especifica una versión de uWSGI para instalar. El predeterminado es instalar la última versión disponible.uwsgi_virtualenv
: Cuandouwsgi_install == "pip"
, instala uWSGI en la ruta virtualenv especificada.uwsgi_vassals
: Crea archivos de configuración INI para cualquier vasallo especificado. Debe ser una lista de hashes, donde cada hash tiene al menos una clavename
para especificar el nombre del archivo. Todas las claves y valores se escriben en el archivo INI bajo la sección[uwsgi]
. El predeterminado es[]
.uwsgi_vassals_to_remove
: Lista de nombres de vasallos a eliminar; el predeterminado es[]
.
Las siguientes variables se pueden usar para personalizar la configuración y las rutas utilizadas para el emperador de uWSGI:
uwsgi_emperor_tyrant
: Ejecuta el emperador en modo tirano. Cada archivo de configuración de vasallo será propiedad del uid/gid especificado en las opciones del vasallo y se ejecutará como ese usuario en lugar del usuario emperador. El predeterminado estrue
cuandouwsgi_install == "pip"
,false
de lo contrario.uwsgi_conf_template
: Plantilla local a utilizar para generar la configuración del emperador de uWSGI. El predeterminado se establece desdeuwsgi_default_conf_templates[ansible_pkg_mgr]
, que evalúa a"uwsgi.ini.j2"
en distribuciones EL y"emperor.ini.j2"
en distribuciones Ubuntu.uwsgi_conf_path
: Ruta al archivo de configuración del emperador de uWSGI. El predeterminado se establece desdeuwsgi_default_conf_paths[ansible_pkg_mgr]
, que evalúa a"/etc/uwsgi.ini"
en distribuciones EL y"/etc/uwsgi-emperor/emperor.ini"
en distribuciones Ubuntu.uwsgi_conf_force
: Si se debe forzar la sobreescritura del archivo de configuración del emperador de uWSGI. El predeterminado esfalse
para solo crear el archivo si no existe aún.uwsgi_vassal_path
: Ruta que el emperador de uWSGI debe seguir para buscar archivos de configuración de vasallos. El predeterminado se establece desdeuwsgi_default_vassal_paths[ansible_pkg_mgr]
, que evalúa a"/etc/uwsgi.d"
en distribuciones EL y"/etc/uwsgi-emperor/vassals"
en distribuciones Ubuntu.
Las siguientes variables se pueden usar para personalizar los paquetes instalados para apoyar a uWSGI:
uwsgi_os_packages
: Lista de paquetes del sistema a instalar para apoyar a uWSGI. El predeterminado se establece desdeuwsgi_default_os_packages[uwsgi_install][ansible_pkg_mgr]
, que instalará paquetes del sistema cuandouwsgi_install == "pkg"
y dependencias de desarrollo de Python cuandouwsgi_install == "pip"
.uwsgi_pip_packages
: Lista de paquetes pip a instalar para apoyar a uWSGI cuandouwsgi_install == "pip"
. El predeterminado se establece desdeuwsgi_default_pip_packages
, que evalúa a["uwsgi"]
.uwsgi_pip_executable
: Nombre o ruta alternativo de pip utilizado para instalar paquetes cuandouwsgi_install == "pip"
y No se instala en un virtualenv. El predeterminado es permitir que el módulopip
determine qué ejecutable de pip usar.
Las siguientes variables pueden usarse para personalizar la configuración del servicio cuando uWSGI no está instalado a través del gestor de paquetes del sistema y se gestiona a través de upstart o systemd:
uwsgi_user_group
: Información de usuario/grupo para ejecutar el emperador de uWSGI. El predeterminado se establece desdeuwsgi_default_user_group[ansible_pkg_mgr]
, que crea"uwsgi:uwsgi"
como usuario y grupo del sistema en distribuciones EL y"www-data:www-data"
como usuario y grupo del sistema en distribuciones Ubuntu, el mismo que sería utilizado por la versión del paquete del sistema de uWSGI. El hash de usuario/grupo puede contenername
,comment
,group
,home
,shell
ysystem
, correspondientes a los parámetros equivalentes del módulo de Ansibleuser
.uwsgi_service_name
: Nombre del servicio uWSGI. El predeterminado se establece desdeuwsgi_default_service_names[ansible_pkg_mgr]
, que evalúa a"uwsgi"
para distribuciones EL y"uwsgi-emperor"
para distribuciones Ubuntu.uwsgi_bin
: Ruta al binario de uWSGI a utilizar para la configuración de upstart o systemd; se determinará automáticamente si no se especifica.uwsgi_opts
: Opciones de línea de comandos a usar al ejecutar uWSGI a través de upstart o systemd; el predeterminado es ejecutar usando las opciones especificadas en el archivo de configuración de uWSGI:"--die-on-term --ini {{uwsgi_conf_path|quote}}"
.uwsgi_use_upstart
: Booleano que indica si se debe usar upstart para crear y gestionar el servicio uWSGI. Es indefinido de forma predeterminada, y solo se habilitará cuando uWSGI no esté instalado a través del gestor del paquete del sistema en distribuciones que no sean EL 7. Se puede establecer enfalse
para desactivar explícitamente el uso de upstart para gestionar el servicio uWSGI.uwsgi_upstart_packages
: Lista de paquetes del sistema a instalar para apoyar la ejecución de uWSGI a través de upstart. El predeterminado se establece desdeuwsgi_default_upstart_packages[ansible_pkg_mgr]
, que simplemente instala el paqueteupstart
.uwsgi_upstart_description
: Descripción del servicio de upstart de uWSGI, el predeterminado es"Servidor uWSGI"
.uwsgi_upstart_template
: Plantilla local para generar la configuración de uWSGI para upstart; el predeterminado es"uwsgi-upstart.conf.j2"
.uwsgi_upstart_path
: Ruta para instalar la configuración de uWSGI para upstart; el predeterminado es"/etc/init/{{_uwsgi_service_name}}.conf"
.uwsgi_use_systemd
: Booleano que indica si se debe usar systemd para crear y gestionar el servicio uWSGI. Es indefinido de forma predeterminada, y solo se habilitará cuando uWSGI no esté instalado a través del gestor de paquetes del sistema en distribuciones EL 7. Se puede establecer enfalse
para desactivar explícitamente el uso de systemd para gestionar el servicio uWSGI.uwsgi_systemd_template
: Plantilla local para generar el servicio uWSGI para systemd; el predeterminado es"uwsgi.service.j2"
.uwsgi_systemd_path
: Ruta para instalar el servidor uWSGI del sistema; el predeterminado es"/etc/systemd/system/{{_uwsgi_service_name}}.service"
.
Ejemplo de Playbook
El siguiente ejemplo de playbook instala uWSGI a través de pip y configura un solo vasallo que ejecuta un sitio Django:
- hosts: all
roles:
- role: cchurch.uwsgi
vars:
uwsgi_install: pip
uwsgi_vassals:
- name: example
plugin: python
chdir: /opt/example/src
module: example.wsgi
home: /opt/example/env
env: DJANGO_SETTINGS_MODULE=example.settings
processes: 4
socket: 127.0.0.1:8000
uid: example
gid: example
Licencia
BSD
Información del Autor
Chris Church (cchurch)
ansible-galaxy install cchurch.uwsgi