buluma.supervisor

Ansible-Rolle Supervisor

Supervisor (Prozesszustandsmanager) für Linux.

GitHub Version Probleme Pull-Anfragen Downloads
github Version Issues PullRequests Ansible-Rolle

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

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 Ansible Molecule Version
buluma.pip Ansible Molecule Version
buluma.core_dependencies Ansible Molecule Version

Kontext

Diese Rolle ist Teil vieler kompatibler Rollen. Weitere Informationen finden Sie in der Dokumentation dieser Rollen.

Hier ist eine Übersicht über verwandte Rollen:

dependencies

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

Historie der Rolle

Lizenz

Apache-2.0

Autor Informationen

Shadow Walker

Über das Projekt

Supervisor (process state manager) for Linux.

Installieren
ansible-galaxy install buluma.supervisor
GitHub Repository
Lizenz
apache-2.0
Downloads
4k
Besitzer
DevOps Engineer