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
_user
und_password
zugegriffen werden kann. Stelle sicher, dass du ein sicheressupervisor_password
festlegst, um unbefugten Zugriff zu verhindern! (Oder, wenn du den HTTP-Server undsupervisorctl
nicht benötigst, solltest du den UNIX-HTTP-Server deaktivieren, indem du diese Variable auffalse
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.
Supervisor (process state manager) for Linux.
ansible-galaxy install geerlingguy.supervisor