entanet_devops.ansible_role_supervisor

Ansible-Rolle: Supervisor

Build-Status

Eine Ansible-Rolle, die Supervisor auf Linux installiert.

Anforderungen

Python pip sollte installiert sein. Wenn es noch nicht installiert ist, können Sie die Ansible-Rolle geerlingguy.pip verwenden, um Pip vor der Ausführung dieser Rolle zu installieren.

Rollenvariablen

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

supervisor_version: latest

Installieren Sie eine bestimmte Version von Supervisor, indem Sie sie hier festlegen. Siehe verfügbare Supervisor-Versionen auf Pypi. latest installiert die neueste stabile Version.

supervisor_started: true
supervisor_enabled: true

Wählen Sie, ob ein Init-Skript oder eine systemd-Einheit konfiguriert werden soll, um Supervisor zu starten, wenn es installiert ist und/oder nach einem Systemstart.

supervisor_config_path: /etc/supervisor

Der Pfad, wo 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; Sie können eine Liste von Programmen definieren, die von Supervisor verwaltet werden sollen. Wenn Sie state auf present setzen, wird eine Konfigurationsdatei für das Programm (benannt [program-name-here].conf) zum conf.d-Pfad hinzugefügt, der von der globalen Supervisor-Konfiguration enthalten ist. Sie können auch die programmspezifische Konfiguration selbst verwalten, außerhalb dieser Rolle, wenn Sie mehr Flexibilität benötigen.

supervisor_nodaemon: false

Setzen Sie auf true, wenn Sie Supervisor im Vordergrund ausführen möchten.

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. Dies würde auch den Passwortschutz für supervisorctl deaktivieren.

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

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

Hinweis: Standardmäßig aktiviert diese Rolle einen HTTP-Server über einen UNIX-Socket, auf den lokal über die vorher definierten _user und _password zugegriffen werden kann. Stellen Sie sicher, dass Sie ein sicheres supervisor_password festlegen, um unbefugten Zugriff zu verhindern! (Oder, wenn Sie den HTTP-Server nicht benötigen und auch supervisorctl nicht verwenden müssen, sollten Sie den UNIX-HTTP-Server deaktivieren, indem Sie diese Variable auf false setzen).

supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'

Ob der TCP-basierte HTTP-Server aktiviert werden soll, sowie die Schnittstelle 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 Sie supervisorctl verwenden möchten, können Sie entweder die integrierte supervisorctl-Modul von Ansible zur Verwaltung verwenden oder es wie folgt ausführen (unter Berücksichtigung des Variablenpfads zum Konfigurationsverzeichnis):

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

Lizenz

MIT / BSD

Autorinformationen

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 entanet_devops.ansible_role_supervisor
GitHub Repository
Lizenz
mit
Downloads
261
Besitzer