geerlingguy.supervisor
Rôle Ansible : Supervisor
Un rôle Ansible qui installe Supervisor sur Linux.
Pré-requis
Python pip
doit être installé. S'il n'est pas déjà installé, vous pouvez utiliser le rôle Ansible geerlingguy.pip
pour l'installer avant d'exécuter ce rôle.
Variables du rôle
Les variables disponibles sont énumérées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
supervisor_version: ''
Installez une version spécifique de Supervisor en la définissant ici. Voir les versions disponibles de Supervisor sur Pypi. Si aucune version n'est définie, la dernière version stable de Supervisor sera installée lors de l'exécution du rôle.
supervisor_started: true
supervisor_enabled: true
Choisissez d'utiliser un script d'init ou une configuration d'unité systemd pour démarrer Supervisor lorsqu'il est installé et/ou après un démarrage du système.
supervisor_config_path: /etc/supervisor
Le chemin où la configuration de Supervisor devra être stockée.
supervisor_programs:
- name: 'foo'
command: /bin/cat
state: present
- name: 'apache'
command: apache2ctl -DFOREGROUND
state: present
configuration: |
autostart=true
autorestart=true
startretries=1
startsecs=1
redirect_stderr=true
stderr_logfile=/var/log/apache-err.log
stdout_logfile=/var/log/apache-out.log
user=root
killasgroup=true
stopasgroup=true
supervisor_programs
est une liste vide par défaut ; vous pouvez définir une liste de programmes
à gérer par Supervisor. Si vous définissez state
sur present
, un fichier de configuration pour le programme (nommé [nom-du-programme].conf
) sera ajouté au chemin conf.d
inclus dans la configuration globale de Supervisor. Vous pouvez aussi gérer la configuration de niveau programme vous-même, en dehors de ce rôle, si vous avez besoin de plus de flexibilité.
supervisor_nodaemon: false
Définissez sur true
si vous devez exécuter Supervisor au premier plan.
supervisor_log_dir: /var/log/supervisor
L'emplacement où les journaux de Supervisor seront stockés.
supervisor_user: root
supervisor_password: 'mon_mot_de_passe_secret'
L'utilisateur sous lequel supervisord
sera exécuté, et le mot de passe à utiliser lors de la connexion au serveur HTTP de Supervisor (soit pour l'accès à supervisorctl
, soit pour consulter l'interface administrative).
supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_password_protect: true
La protection par mot de passe peut être désactivée pour HTTP Unix et HTTP Inet en définissant ces variables sur false
. Cela désactiverait également la protection par mot de passe pour supervisorctl
.
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
Si le serveur HTTP basé sur socket UNIX doit être activé, et le fichier socket à utiliser si c'est le cas.
Remarque : Par défaut, ce rôle active un serveur HTTP sur un socket UNIX qui peut être accessible localement en utilisant le
_user
et le_password
définis précédemment. Assurez-vous de définir unsupervisor_password
sécurisé pour éviter un accès non autorisé ! (Ou, si vous n'avez pas besoin du serveur HTTP ni d'utilisersupervisorctl
, vous devriez désactiver le serveur HTTP UNIX en définissant cette variable surfalse
).
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
Si le serveur HTTP basé sur TCP doit être activé, ainsi que l'interface et le port sur lesquels le serveur doit écouter, si c'est le cas.
Dépendances
Aucune.
Exemple de Playbook
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
Si vous devez utiliser supervisorctl
, vous pouvez soit utiliser le module supervisorctl
intégré d'Ansible pour la gestion, soit l'exécuter comme ceci (en tenant compte du chemin variable vers le répertoire de configuration) :
supervisorctl -c /etc/supervisor/supervisord.conf -u root -p [mot_de_passe] status all
Licence
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2017 par Jeff Geerling, auteur de Ansible for DevOps.
Supervisor (process state manager) for Linux.
ansible-galaxy install geerlingguy.supervisor