robertdebock.service
Ansible-Rolle Dienst
Fügen Sie benutzerdefinierte Dienste zu Ihrem Linux-System hinzu.
GitHub | GitLab | Downloads | Version |
---|---|---|---|
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 einfach lang.
roles:
- role: robertdebock.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-gruppen-dienst
description: Dienst für bestimmte Benutzergruppe
start_command: "{{ service_test_command }} 28800"
user_name: root
group_name: root
- name: spezifischer-arbeitsverzeichnis-dienst
description: Dienst mit spezifischem Arbeitsverzeichnis
start_command: "{{ service_test_command }} 57600"
working_directory: /tmp
- name: spezifischer-muster-dienst
description: Dienst mit spezifischem Statusmuster
start_command: "{{ service_test_command }} 115200"
status_pattern: 115200
- name: variable-dienst
description: Dienst mit Umgebungsvariablen
start_command: "{{ service_test_command }} ${time}"
environment_variables:
time: 230400
- name: pidfile-dienst
description: Dienst mit PID-Datei
start_command: "{{ service_test_command }} 460800"
pidfile: /var/run/pidfile-service.pid
- name: umgebungsdatei-dienst
description: Dienst mit Umgebungsdatei
start_command: "{{ service_test_command }} 921600"
environmentfile: /environmentfile.txt
Die Maschine muss vorbereitet werden. In CI erfolgt dies mit molecule/default/prepare.yml
:
---
- name: Vorbereiten
hosts: alle
become: true
gather_facts: false
serial: 30%
roles:
- role: robertdebock.bootstrap
post_tasks:
- name: Datei /environmentfile.txt platzieren
ansible.builtin.copy:
content: "value=variable"
dest: /environmentfile.txt
mode: "0644"
Siehe auch eine vollständige Erklärung und Beispiel zur Nutzung dieser Rollen.
Rollenvariablen
Die Standardwerte für die Variablen sind in defaults/main.yml
festgelegt:
---
# Standarddatei für Dienst
# service_list kann eine Liste von Diensten enthalten, die zum System hinzugefügt werden.
# Die erforderlichen Elemente für jeden Dienst sind:
# - name: Der (kurze) Name des Dienstes, z.B. "tomcat".
# - description: Ein längerer Name, z.B. "Tomcat-Anwendungsserver".
# - start_command: Der Befehl, um den Daemon zu starten,
# z.B. "/usr/local/bin/java -jar some.jar"
# Die optionalen Elemente sind:
# - stop_command: Standardmäßig wird das gestartete Programm gesucht und gestoppt.
# Falls ein laufendes Programm während des Starts umbenannt oder erweitert wird (einschließlich eines Pfads),
# können Sie hier einen benutzerdefinierten Stop-Befehl angeben, z.B. "pkill foo"
# - status_pattern: Nach welchem Programm (oder Muster) gesucht werden soll, um den
# Status eines Programms zu ermitteln, z.B. "artifactory".
# - type: Wie das Programm startet; "simple" oder "forking". Simple bedeutet,
# dass das Programm im Vordergrund läuft, z.B. "nc -l 1234". Forking bedeutet, dass sich das
# Programm selbst forked, z.B. "nc -l 12345 &"
# - working_directory: Das Verzeichnis, in das gewechselt wird, bevor der Dienst gestartet wird.
# - environment_variables: Eine Liste von Variablen, die gesetzt werden sollen. Zum Beispiel:
# environment_variables:
# variable1: value1
# variable2: value2
# - after: Starten nach dem genannten Dienst.
# - restart_mode: Der Modus, der verwendet werden soll, z.B. "always".
# - restart_seconds: Die Zeit, die für den Abschluss eines Neustarts erlaubt ist.
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 auf andere Weise vorbereiten.
Anforderung | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap |
Kontext
Diese Rolle ist Teil von vielen kompatiblen Rollen. Schauen Sie sich die Dokumentation dieser Rollen für weitere Informationen an.
Hier ist eine Übersicht der verwandten Rollen:
Kompatibilität
Diese Rolle wurde auf diesen Container-Images getestet:
Container | Tags |
---|---|
EL | 9 |
Debian | alle |
Fedora | alle |
Ubuntu | alle |
Die Mindestversion von Ansible, die erforderlich ist, beträgt 2.12; Tests wurden durchgeführt für:
- Die vorherige Version.
- Die aktuelle Version.
- Die Entwicklungsversion.
Wenn Sie Probleme finden, melden Sie diese bitte in GitHub.
Lizenz
Autoreninfo
Bitte überlegen Sie, mich zu unterstützen.
ansible-galaxy install robertdebock.service