buluma.service
Ansible Rolle service
Fügen Sie benutzerdefinierte Dienste zu Ihrem Linux-System hinzu.
GitHub | Version | Probleme | Pull-Anfragen | Downloads |
---|---|---|---|---|
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
- pip-Pakete, die in requirements.txt aufgeführt sind.
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 |
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 |
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
Lizenz
Autoreninformation
ansible-galaxy install buluma.service