geerlingguy.supervisor
Ansible Rolle: Supervisor
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
_userund_passwordzugegriffen werden kann. Stelle sicher, dass du ein sicheressupervisor_passwordfestlegst, um unbefugten Zugriff zu verhindern! (Oder, wenn du den HTTP-Server undsupervisorctlnicht benötigst, solltest du den UNIX-HTTP-Server deaktivieren, indem du diese Variable auffalsesetzt).
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.
Supervisor (process state manager) for Linux.
ansible-galaxy install geerlingguy.supervisor