entanet_devops.ansible_role_supervisor
Rola Ansible: Supervisor
Rola Ansible, która instaluje Supervisor na systemie Linux.
Wymagania
Python pip
powinien być zainstalowany. Jeśli nie jest zainstalowany, możesz użyć roli Ansible geerlingguy.pip
, aby najpierw zainstalować Pip przed uruchomieniem tej roli.
Zmienne roli
Dostępne zmienne są wymienione poniżej, razem z wartościami domyślnymi (zobacz defaults/main.yml
):
supervisor_version: latest
Zainstaluj konkretną wersję Supervisor, ustawiając to tutaj. Zobacz dostępne wersje Supervisor na Pypi. latest
instaluje najnowszą stabilną wersję.
supervisor_started: true
supervisor_enabled: true
Wybierz, czy chcesz używać skryptu inicjalizacyjnego czy konfiguracji jednostki systemd do uruchamiania Supervisor po zainstalowaniu i/lub po uruchomieniu systemu.
supervisor_config_path: /etc/supervisor
Ścieżka, w której powinny być przechowywane pliki konfiguracyjne Supervisor.
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
jest domyślnie pustą listą; możesz zdefiniować listę programów
, które będą zarządzane przez Supervisor. Jeśli ustawisz state
na present
, plik konfiguracyjny dla programu (nazywany [nazwa-programu-here].conf
) zostanie dodany do ścieżki conf.d
, włączonej przez globalną konfigurację Supervisor. Możesz także zarządzać konfiguracją na poziomie programu samodzielnie, poza tą rolą, jeśli potrzebujesz większej elastyczności.
supervisor_nodaemon: false
Ustaw na true
, jeśli potrzebujesz uruchomić Supervisor w trybie foreground.
supervisor_log_dir: /var/log/supervisor
Miejsce, w którym będą przechowywane logi Supervisor.
supervisor_user: root
supervisor_password: 'moje_tajne_hasło'
Użytkownik, pod którym będzie działał supervisord
, oraz hasło do użycia przy łączeniu się z serwerem HTTP Supervisor (zarówno do dostępu supervisorctl
, jak i przy przeglądaniu interfejsu administracyjnego).
supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_password_protect: true
Ochronę hasłem można wyłączyć dla Unix HTTP i Inet HTTP, ustawiając te zmienne na false
. To wyłączy również ochronę hasłem dla supervisorctl
.
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
Czy włączyć serwer HTTP oparty na gniazdku UNIX oraz plik gniazdka do użycia, jeśli jest włączony.
Uwaga: Domyślnie ta rola włącza serwer HTTP przez gniazdo UNIX, który można lokalnie wykorzystywać, używając wcześniej zdefiniowanych
_user
i_password
. Upewnij się, że ustawisz bezpiecznesupervisor_password
, aby zapobiec nieautoryzowanemu dostępowi! (Lub, jeśli nie potrzebujesz serwera HTTP ani użyciasupervisorctl
, powinieneś wyłączyć serwer HTTP UNIX, ustawiając tę zmienną nafalse
).
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
Czy włączyć serwer HTTP oparty na TCP oraz interfejs i port, na którym serwer powinien nasłuchiwać, jeśli jest włączony.
Zależności
Brak.
Przykład playbooka
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
Jeśli potrzebujesz używać supervisorctl
, możesz skorzystać z wbudowanego modułu supervisorctl
Ansible do zarządzania lub uruchomić go w ten sposób (biorąc pod uwagę zmienną ścieżkę do katalogu konfiguracyjnego):
supervisorctl -c /etc/supervisor/supervisord.conf -u root -p [hasło] status all
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona w 2017 roku przez Jeffa Geerlinga, autora Ansible for DevOps.
Supervisor (process state manager) for Linux.
ansible-galaxy install entanet_devops.ansible_role_supervisor