buluma.service

Ansible Rolle service

Fügen Sie benutzerdefinierte Dienste zu Ihrem Linux-System hinzu.

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

Beispiel-Playbook

Dieses Beispiel stammt aus molecule/default/converge.yml und wird bei jedem Push, Pull-Request und Release getestet.

---
- name: Konvergieren
  hosts: alle
  become: true
  gather_facts: true

  vars:
    _service_test_command:
      default: /usr/bin/sleep
      Alpine: /bin/sleep
      Debian: /bin/sleep
      Ubuntu-16: /bin/sleep
      Ubuntu-18: /bin/sleep
    service_test_command: "{{ _service_test_command[ansible_distribution ~ '-' ~ ansible_distribution_major_version] | default(_service_test_command[ansible_os_family] | default(_service_test_command['default'])) }}"  # noqa 204 Nur lang.

  roles:
    - role: buluma.service
      service_list:
        - name: einfacher-dienst
          description: Einfacher Dienst
          start_command: "{{ service_test_command }} 3600"
          state: gestartet
          enabled: true
        - name: gestoppter-dienst
          description: Einfacher Dienst
          start_command: "{{ service_test_command }} 3601"
          state: gestoppt
          enabled: false
        - name: spezifischer-stop-dienst
          description: Spezifischer Stop-Dienst
          start_command: "{{ service_test_command }} 1440"
          stop_command: /usr/bin/killall -f "sleep 1440"
        - name: spezifischer-benutzer-gruppe-dienst
          description: Spezifischer Benutzergruppen-Dienst
          start_command: "{{ service_test_command }} 28800"
          user_name: root
          group_name: root
        - name: spezifischer-arbeitsverzeichnis-dienst
          description: Spezifischer Arbeitsverzeichnis-Dienst
          start_command: "{{ service_test_command }} 57600"
          working_directory: /tmp
        - name: spezifischer-muster-dienst
          description: Spezifischer Statusmuster-Dienst
          start_command: "{{ service_test_command }} 115200"
          status_pattern: 115200
        - name: variabel-dienst
          description: Dienst mit Umgebungsvariablen
          start_command: "{{ service_test_command }} ${time}"
          environment_variables:
            time: 230400
        - name: pidfile-dienst
          description: Dienst mit pidfile
          start_command: "{{ service_test_command }} 460800"
          pidfile: /var/run/pidfile-dienst.pid
        - name: umgebungsdatei-dienst
          description: Dienst mit Umgebungsdatei
          start_command: "{{ service_test_command }} 921600"
          environmentfile: /environmentfile.txt

Der Computer muss vorbereitet werden. In CI geschieht dies mit molecule/default/prepare.yml:

---
- name: Vorbereiten
  hosts: alle
  gather_facts: false
  become: true
  serial: 30%

  roles:
    - role: buluma.bootstrap

  post_tasks:
    - name: platzieren von /environmentfile.txt
      ansible.builtin.copy:
        content: "value=variable"
        dest: /environmentfile.txt
        mode: "0644"

Siehe auch eine vollständige Erklärung und Beispiel, wie man diese Rollen verwendet.

Rollenvariablen

Die Standardwerte für die Variablen sind in defaults/main.yml festgelegt:

---
# Standarddatei für Service

# service_list kann eine Liste von Diensten enthalten, die zum System hinzugefügt werden sollen.
# Die zwingend erforderlichen Punkte für jedes Element sind:
# - name: Der (kurze) Name des Dienstes, z. B. "tomcat".
# - description: Ein etwas längerer Name, z. B. "Tomcat-Anwendungsserver".
# - start_command: Der Befehl zum Starten des Daemons,
#   z. B. "/usr/local/bin/java -jar some.jar"
# Die optionalen Elemente sind:
# - stop_command: Standardmäßig wird das gestartete Programm gefunden und gestoppt.
#   Wenn ein laufendes Programm während des Starts umbenannt oder erweitert wird
#   (inklusive eines Pfads), können Sie hier einen benutzerdefinierten Stop-Befehl angeben, z. B. "pkill foo"
# - status_pattern: Welches Programm (oder Muster) gesucht werden soll, um den
#   Status eines Programms zu ermitteln, z. B. "artifactory".
# - type: Wie das Programm startet; "einfach" oder "forking". Einfach bedeutet, dass das
#   Programm im Vordergrund läuft, z. B. "nc -l 1234". Forking bedeutet, dass das
#   Programm sich selbst forked, z. B. "nc -l 12345 &"
# - working_directory: Das Verzeichnis, in das gewechselt werden soll, bevor der Dienst gestartet wird.
# - environment_variables: Eine Liste von Variablen, die gesetzt werden sollen. Beispiel:
#   environment_variables:
#     variable1: value1
#     variable2: value2
# - after: Start nach dem genannten Dienst.
# - restart_mode: Der Modus, der verwendet werden soll, z. B. "immer".
# - restart_seconds: Die Zeit, die der Neustart benötigen darf.
service_list: []

Anforderungen

Status der verwendeten Rollen

Die folgenden Rollen werden verwendet, um ein System vorzubereiten. Sie können Ihr System auch anders vorbereiten.

Anforderung GitHub Version
buluma.bootstrap 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
Fedora alle
opensuse alle
Ubuntu alle
Kali alle

Die Mindestversion von Ansible, die erforderlich ist, ist 2.12, Tests wurden durchgeführt auf:

  • Der vorherigen Version.
  • Der aktuellen Version.
  • Der Entwicklungs-Version.

Falls Sie Probleme finden, registrieren Sie bitte diese in GitHub

Änderungsprotokoll

Historie der Rolle

Lizenz

Apache-2.0

Autoreninformation

Shadow Walker

Über das Projekt

Add custom services to your Linux system.

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