entanet_devops.ansible_role_supervisor
Ansible-Rolle: Supervisor
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 sicheressupervisor_password
festlegen, um unbefugten Zugriff zu verhindern! (Oder, wenn Sie den HTTP-Server nicht benötigen und auchsupervisorctl
nicht verwenden müssen, sollten Sie den UNIX-HTTP-Server deaktivieren, indem Sie diese Variable auffalse
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.
Supervisor (process state manager) for Linux.
ansible-galaxy install entanet_devops.ansible_role_supervisor