entanet_devops.ansible_role_supervisor
Rôle Ansible : Supervisor
Un Rôle Ansible qui installe Supervisor sur Linux.
Exigences
Python pip
doit être installé. S'il n'est pas déjà installé, vous pouvez utiliser le rôle Ansible geerlingguy.pip
pour installer Pip avant d'exécuter ce rôle.
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
supervisor_version: latest
Pour installer une version spécifique de Supervisor, définissez-la ici. Voir les versions disponibles de Supervisor sur Pypi. latest
installera la dernière version stable.
supervisor_started: true
supervisor_enabled: true
Choisissez si vous souhaitez utiliser un script d'initialisation ou une configuration d'unité systemd pour démarrer Supervisor lors de son installation et/ou après le démarrage du système.
supervisor_config_path: /etc/supervisor
Le chemin où la configuration de Supervisor doit ê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 program
s à gérer par Supervisor. Si vous définissez state
sur present
, alors un fichier de configuration pour le programme (nommé [program-name-here].conf
) sera ajouté au chemin conf.d
inclus par la configuration globale de Supervisor. Vous pouvez également gérer la configuration au niveau du programme par vous-même, en dehors de ce rôle, si vous avez besoin de plus de flexibilité.
supervisor_nodaemon: false
Définir 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 lors de la consultation de 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
Choisir d'activer ou non le serveur HTTP basé sur le socket UNIX, et le fichier socket à utiliser s'il est activé.
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 tout accès non autorisé ! (Ou, si vous n'avez pas besoin du serveur HTTP ni d'utilisersupervisorctl
, vous devez désactiver le serveur HTTP UNIX en définissant cette variable surfalse
).
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
Choisir d'activer ou non le serveur HTTP basé sur TCP, et l'interface et le port sur lesquels le serveur doit écouter s'il est activé.
Dépendances
Aucune.
Exemple de Playbook
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
Si vous avez besoin d'utiliser supervisorctl
, vous pouvez soit utiliser le module supervisorctl
intégré d'Ansible pour la gestion, soit l'exécuter ainsi (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 entanet_devops.ansible_role_supervisor