entanet_devops.ansible_role_supervisor

Rôle Ansible : Supervisor

Statut de construction

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 programs à 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 un supervisor_password sécurisé pour éviter tout accès non autorisé ! (Ou, si vous n'avez pas besoin du serveur HTTP ni d'utiliser supervisorctl, vous devez désactiver le serveur HTTP UNIX en définissant cette variable sur false).

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.

À propos du projet

Supervisor (process state manager) for Linux.

Installer
ansible-galaxy install entanet_devops.ansible_role_supervisor
Licence
mit
Téléchargements
261
Propriétaire