cchurch.uwsgi
uWSGI
Installez uWSGI en mode empereur et configurez les vassaux. Nécessite Ansible 2.4 ou une version ultérieure.
Variables du Rôle
REMARQUE : Certains noms de variables ont changé depuis les versions 0.2.x !
Les variables suivantes sont généralement définies pour personnaliser ce rôle :
uwsgi_install
: Méthode à utiliser pour installer uWSGI ; peut être"pkg"
(par défaut) pour utiliser le gestionnaire de paquets du système ou"pip"
pour une installation via pip. Toute autre valeur suppose qu'uWSGI est installé par d'autres moyens.uwsgi_version
: Lorsqueuwsgi_install == "pip"
, spécifiez une version d'uWSGI à installer. La valeur par défaut est d'installer la dernière version disponible.uwsgi_virtualenv
: Lorsqueuwsgi_install == "pip"
, installe uWSGI dans le chemin de virtualenv spécifié.uwsgi_vassals
: Créez des fichiers de configuration INI pour tout vassal spécifié. Doit être une liste de hachages, chaque hachage ayant au moins une cléname
pour spécifier le nom du fichier. Toutes les clés et valeurs sont écrites dans le fichier INI sous la section[uwsgi]
. La valeur par défaut est[]
.uwsgi_vassals_to_remove
: Liste des noms de vassaux à supprimer ; la valeur par défaut est[]
.
Les variables suivantes peuvent être utilisées pour personnaliser la configuration et les chemins utilisés pour l'empereur uWSGI :
uwsgi_emperor_tyrant
: Exécute l'empereur en mode tyran. Chaque fichier de configuration de vassal sera possédé par l'uid/gid spécifié dans les options du vassal et s'exécutera en tant qu'utilisateur au lieu de l'utilisateur empereur. Par défaut, c'esttrue
lorsqueuwsgi_install == "pip"
,false sinon
.uwsgi_conf_template
: Modèle local à utiliser pour générer la configuration de l'empereur uWSGI. La valeur par défaut est définie à partir deuwsgi_default_conf_templates[ansible_pkg_mgr]
, qui évalue à"uwsgi.ini.j2"
sur les distributions EL et"emperor.ini.j2"
sur les distributions Ubuntu.uwsgi_conf_path
: Chemin vers le fichier de configuration de l'empereur uWSGI. La valeur par défaut est définie à partir deuwsgi_default_conf_paths[ansible_pkg_mgr]
, qui évalue à"/etc/uwsgi.ini"
sur les distributions EL et"/etc/uwsgi-emperor/emperor.ini"
sur les distributions Ubuntu.uwsgi_conf_force
: Indique si l'on doit forcer l'écriture du fichier de configuration de l'empereur uWSGI. La valeur par défaut estfalse
, pour créer le fichier seulement s'il n'existe pas déjà.uwsgi_vassal_path
: Chemin pour que l'empereur uWSGI recherche les fichiers de configuration des vassaux. La valeur par défaut est définie à partir deuwsgi_default_vassal_paths[ansible_pkg_mgr]
, qui évalue à"/etc/uwsgi.d"
sur les distributions EL et"/etc/uwsgi-emperor/vassals"
sur les distributions Ubuntu.
Les variables suivantes peuvent être utilisées pour personnaliser les paquets installés pour supporter uWSGI :
uwsgi_os_packages
: Liste des paquets système à installer pour supporter uWSGI. La valeur par défaut est définie à partir deuwsgi_default_os_packages[uwsgi_install][ansible_pkg_mgr]
, qui installera des paquets système lorsqueuwsgi_install == "pkg"
et les dépendances de développement Python lorsqueuwsgi_install == "pip"
.uwsgi_pip_packages
: Liste des paquets pip à installer pour supporter uWSGI lorsqueuwsgi_install == "pip"
. La valeur par défaut est définie à partir deuwsgi_default_pip_packages
, qui évalue à["uwsgi"]
.uwsgi_pip_executable
: Nom ou chemin alternatif de pip utilisé pour installer des paquets lorsqueuwsgi_install == "pip"
et que l'installation ne se fait pas dans un virtualenv. La valeur par défaut laisse le modulepip
déterminer quel exécutable pip utiliser.
Les variables suivantes peuvent être utilisées pour personnaliser la configuration du service lorsque uWSGI n'est pas installé via le gestionnaire de paquets du système et géré via upstart ou systemd :
uwsgi_user_group
: Informations sur l'utilisateur/groupe pour exécuter l'empereur uWSGI. La valeur par défaut est définie à partir deuwsgi_default_user_group[ansible_pkg_mgr]
, qui crée un utilisateur et un groupe systèmes"uwsgi:uwsgi"
sur les distributions EL et"www-data:www-data"
sur les distributions Ubuntu, comme ceux utilisés par la version paquet système d'uWSGI. Le hachage utilisateur/groupe peut contenir les clésname
,comment
,group
,home
,shell
etsystem
, correspondant aux paramètres équivalents au moduleuser
d'Ansible.uwsgi_service_name
: Nom du service uWSGI. La valeur par défaut est définie à partir deuwsgi_default_service_names[ansible_pkg_mgr]
, qui évalue à"uwsgi"
pour les distributions EL et"uwsgi-emperor"
pour les distributions Ubuntu.uwsgi_bin
: Chemin vers l'exécutable uWSGI à utiliser pour la configuration upstart ou systemd ; sera déterminé automatiquement si non spécifié.uwsgi_opts
: Options de ligne de commande à utiliser lors de l'exécution d'uWSGI via upstart ou systemd ; par défaut, cela utilise les options spécifiées dans le fichier de configuration uWSGI :"--die-on-term --ini {{uwsgi_conf_path|quote}}"
.uwsgi_use_upstart
: Booléen indiquant s'il faut utiliser upstart pour créer et gérer le service uWSGI. Il est indéfini par défaut et ne sera activé que lorsque uWSGI n'est pas installé via le gestionnaire de paquets du système sur des distributions autres que EL 7. Il peut être défini surfalse
pour désactiver explicitement l'utilisation d'upstart pour gérer le service uWSGI.uwsgi_upstart_packages
: Liste des paquets système à installer pour supporter l'exécution d'uWSGI via upstart. La valeur par défaut est définie à partir deuwsgi_default_upstart_packages[ansible_pkg_mgr]
, qui installe simplement le paquetupstart
.uwsgi_upstart_description
: Description pour le service uWSGI upstart, la valeur par défaut est"uWSGI Server"
.uwsgi_upstart_template
: Modèle local à utiliser pour générer la configuration upstart d'uWSGI ; la valeur par défaut est"uwsgi-upstart.conf.j2"
.uwsgi_upstart_path
: Chemin pour installer la configuration upstart d'uWSGI ; la valeur par défaut est"/etc/init/{{_uwsgi_service_name}}.conf"
.uwsgi_use_systemd
: Booléen indiquant s'il faut utiliser systemd pour créer et gérer le service uWSGI. Il est indéfini par défaut et ne sera activé que lorsque uWSGI n'est pas installé via le gestionnaire de paquets du système sur les distributions EL 7. Il peut être défini surfalse
pour désactiver explicitement l'utilisation de systemd pour gérer le service uWSGI.uwsgi_systemd_template
: Modèle local à utiliser pour générer le service uWSGI sous systemd ; la valeur par défaut est"uwsgi.service.j2"
.uwsgi_systemd_path
: Chemin pour installer le serveur uWSGI dans systemd ; la valeur par défaut est"/etc/systemd/system/{{_uwsgi_service_name}}.service"
.
Exemple de Playbook
L'exemple de playbook suivant installe uWSGI via pip et configure un seul vassal exécutant un site 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
Licence
BSD
Informations sur l'auteur
Chris Church (cchurch)
ansible-galaxy install cchurch.uwsgi