buluma.supervisor
Ansible-Rolle Supervisor
Supervisor (Prozesszustandsmanager) für Linux.
GitHub | Version | Probleme | Pull-Anfragen | Downloads |
---|---|---|---|---|
Beispiel-Playbook
Dieses Beispiel stammt aus molecule/default/converge.yml
und wird bei jedem Push, jeder Pull-Anfrage und jeder Veröffentlichung getestet.
---
- name: Konvergieren
hosts: alle
become: true
environment:
PATH: "/usr/local/bin:{{ ansible_env.PATH }}"
vars:
supervisor_user: root
supervisor_password: fizzbuzz
pre_tasks:
- name: APT-Cache aktualisieren (Debian).
apt: update_cache=true cache_valid_time=600
when: ansible_os_family == 'Debian'
- name: curl zu Testzwecken installieren.
package: name=curl state=present
- block:
- name: Apache installieren (RedHat).
package: name=httpd state=present
- name: sicherstellen, dass Apache nicht läuft (RedHat).
service: name=httpd state=stopped enabled=no
when: ansible_os_family == 'RedHat'
- block:
- name: Apache installieren (Debian).
package: name=apache2 state=present
- name: sicherstellen, dass Apache nicht läuft (Debian).
service: name=apache2 state=stopped enabled=no
when: ansible_os_family == 'Debian'
- name: Eine Test-HTML-Datei erstellen.
ansible.builtin.copy:
content: "<html><head><title>Test</title></head><body>Test.</body></html>"
dest: /var/www/html/index.html
force: false
group: root
owner: root
mode: 0644
- name: Apache Startbefehl festlegen (Debian).
ansible.builtin.set_fact:
apache_start_command: apache2ctl -DFOREGROUND
when: ansible_os_family == 'Debian'
- name: Apache Startbefehl festlegen (RedHat).
ansible.builtin.set_fact:
apache_start_command: httpd -DFOREGROUND
when: ansible_os_family == 'RedHat'
- name: Apache zu supervisor_programs hinzufügen.
ansible.builtin.set_fact:
supervisor_programs:
- name: 'apache'
command: "{{ apache_start_command }}"
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
roles:
- role: buluma.supervisor
tasks:
- name: Handler auslösen, damit der Supervisor alles ausführt, was er ausführen soll.
ansible.builtin.meta: flush_handlers
post_tasks:
- name: Warten, bis Apache hochgefahren ist (falls er es tun wird...).
ansible.builtin.wait_for:
port: 80
delay: 2
- name: Überprüfen, ob Apache auf Port 80 antwortet.
ansible.builtin.uri:
url: http://127.0.0.1/
method: GET
status_code: 200
- name: Überprüfen, ob supervisorctl verfügbar ist.
command: supervisorctl --help
args:
warn: false
changed_when: false
- name: Überprüfen, ob supervisorctl über den Standard-UNIX-Socket funktioniert.
community.general.supervisorctl:
name: apache
state: restarted
username: "{{ supervisor_user }}"
password: "{{ supervisor_password }}"
changed_when: false
- name: Überprüfen, ob supervisorctl mit Unix-Socket funktioniert.
command: supervisorctl status
args:
warn: false
changed_when: false
Die Maschine muss vorbereitet werden. In CI geschieht dies mit molecule/default/prepare.yml
:
---
- name: Vorbereiten
hosts: alle
gather_facts: no
become: yes
serial: 30%
roles:
- role: buluma.bootstrap
- role: buluma.pip
- role: buluma.core_dependencies
Siehe auch eine vollständige Erklärung und Beispiel zur Verwendung dieser Rollen.
Rollenvariablen
Die Standardwerte für die Variablen sind in defaults/main.yml
festgelegt:
---
# Installieren Sie eine bestimmte Version von Supervisor, indem Sie sie hier festlegen (z.B. '3.3.1').
supervisor_version: ''
# Wählen Sie, ob ein Init-Skript oder eine Systemd-Einheit konfiguriert werden soll, um
# Supervisor beim Installieren und/oder nach einem Systemstart zu starten.
supervisor_started: true
supervisor_enabled: true
supervisor_config_path: /etc/supervisor
# Eine Liste von `program`s, die Supervisor steuern wird. Beispiel unten kommentiert.
supervisor_programs: []
# - name: 'apache'
# command: apache2ctl -c "ErrorLog /dev/stdout" -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_nodaemon: false
supervisor_log_dir: /var/log/supervisor
supervisor_user: root
supervisor_password: 'mein_geheimes_passwort'
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
supervisor_inet_http_server_password_protect: true
Anforderungen
- pip-Pakete, die in requirements.txt aufgeführt sind.
Zustand der verwendeten Rollen
Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auch auf andere Weise vorbereiten.
Anforderung | GitHub | Version |
---|---|---|
buluma.bootstrap | ||
buluma.pip | ||
buluma.core_dependencies |
Kontext
Diese Rolle ist Teil vieler kompatibler Rollen. Weitere Informationen finden Sie in der Dokumentation dieser Rollen.
Hier ist eine Übersicht über verwandte Rollen:
Kompatibilität
Diese Rolle wurde auf diesen Container-Images getestet:
Container | Tags |
---|---|
EL | 8 |
Debian | alle |
Ubuntu | alle |
Kali | alle |
Die Mindestversion von Ansible wird mit 2.12 angegeben, Tests wurden durchgeführt auf:
- Der vorherigen Version.
- Der aktuellen Version.
- Der Entwicklungsversion.
Wenn Sie Probleme finden, registrieren Sie diese bitte bei GitHub
Änderungsprotokoll
Lizenz
Autor Informationen
Supervisor (process state manager) for Linux.
ansible-galaxy install buluma.supervisor