geerlingguy.supervisor

Ansible Rolle: Supervisor

CI

Eine Ansible Rolle, die Supervisor auf Linux installiert.

Voraussetzungen

Python pip sollte installiert sein. Falls es noch nicht installiert ist, kannst du die Ansible Rolle geerlingguy.pip verwenden, um Pip vor der Ausführung dieser Rolle zu installieren.

Rollen-Variablen

Verfügbare Variablen sind unten aufgelistet, zusammen mit den Standardwerten (siehe defaults/main.yml):

supervisor_version: ''

Installiere eine bestimmte Version von Supervisor, indem du sie hier festlegst. Siehe verfügbare Supervisor-Versionen auf Pypi. Wenn keine Version angegeben ist, wird die neueste stabile Version von Supervisor installiert, wenn die Rolle ausgeführt wird.

supervisor_started: true
supervisor_enabled: true

Wähle, ob ein Init-Skript oder eine systemd-Einheit verwendet werden soll, um Supervisor beim Installieren und/oder nach einem Systemstart zu starten.

supervisor_config_path: /etc/supervisor

Der Pfad, in dem die Supervisor-Konfiguration gespeichert werden soll.

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 ist standardmäßig eine leere Liste; du kannst eine Liste von Programmen definieren, die von Supervisor verwaltet werden sollen. Wenn du den state auf present setzt, wird eine Konfigurationsdatei für das Programm (benannt [program-name-here].conf) zum conf.d-Pfad hinzugefügt, der in der globalen Supervisor-Konfiguration enthalten ist. Du kannst auch die Programmkonfiguration selbst verwalten, außerhalb dieser Rolle, wenn du mehr Flexibilität benötigst.

supervisor_nodaemon: false

Auf true setzen, wenn du Supervisor im Vordergrund ausführen musst.

supervisor_log_dir: /var/log/supervisor

Der Speicherort, an dem die Supervisor-Protokolle gespeichert werden.

supervisor_user: root
supervisor_password: 'mein_geheimes_passwort'

Der Benutzer, unter dem supervisord ausgeführt wird, und das Passwort, das beim Verbinden mit dem HTTP-Server von Supervisor verwendet wird (entweder für den Zugriff auf supervisorctl oder beim Anzeigen der Verwaltungsoberfläche).

supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_password_protect: true

Der Passwortschutz kann für Unix HTTP und Inet HTTP deaktiviert werden, indem diese Variablen auf false gesetzt werden. Dadurch wird auch der Passwortschutz für supervisorctl deaktiviert.

supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock

Ob der UNIX-basierten HTTP-Server aktiviert werden soll und die Socket-Datei, die verwendet werden soll, falls aktiviert.

Hinweis: Standardmäßig aktiviert diese Rolle einen HTTP-Server über einen UNIX-Socket, der lokal mit dem zuvor festgelegten _user und _password zugegriffen werden kann. Stelle sicher, dass du ein sicheres supervisor_password festlegst, um unbefugten Zugriff zu verhindern! (Oder, wenn du den HTTP-Server und supervisorctl nicht benötigst, solltest du den UNIX-HTTP-Server deaktivieren, indem du diese Variable auf false setzt).

supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'

Ob der TCP-basierte HTTP-Server aktiviert werden soll und das Interface und der Port, auf dem der Server hören soll, falls aktiviert.

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: all
  roles:
    - geerlingguy.pip
    - geerlingguy.supervisor

Wenn du supervisorctl verwenden musst, kannst du entweder das eingebaute supervisorctl-Modul von Ansible für die Verwaltung verwenden oder es so ausführen (unter Berücksichtigung des Pfads zum Konfigurationsverzeichnis):

supervisorctl -c /etc/supervisor/supervisord.conf -u root -p [passwort] status all

Lizenz

MIT / BSD

Autor-Informationen

Diese Rolle wurde 2017 von Jeff Geerling erstellt, dem Autor von Ansible for DevOps.

Über das Projekt

Supervisor (process state manager) for Linux.

Installieren
ansible-galaxy install geerlingguy.supervisor
Lizenz
mit
Downloads
553.6k
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns