geerlingguy.supervisor

Rôle Ansible : Supervisor

CI

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 un supervisor_password sécurisé pour éviter un accès non autorisé ! (Ou, si vous n'avez pas besoin du serveur HTTP ni d'utiliser supervisorctl, vous devriez 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'

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.

À propos du projet

Supervisor (process state manager) for Linux.

Installer
ansible-galaxy install geerlingguy.supervisor
Licence
mit
Téléchargements
553.6k
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns