buluma.service
Rôle Ansible service
Ajoutez des services personnalisés à votre système Linux.
GitHub | Version | Issues | Pull Requests | Téléchargements |
---|---|---|---|---|
Exemple de Playbook
Cet exemple est tiré de molecule/default/converge.yml
et est testé à chaque push, pull request et release.
---
- name: Converger
hosts: all
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 Just long.
roles:
- role: buluma.service
service_list:
- name: simple-service
description: Service simple
start_command: "{{ service_test_command }} 3600"
state: started
enabled: true
- name: stopped-service
description: Service simple
start_command: "{{ service_test_command }} 3601"
state: stopped
enabled: false
- name: specific-stop-service
description: Service d'arrêt spécifique
start_command: "{{ service_test_command }} 1440"
stop_command: /usr/bin/killall -f "sleep 1440"
- name: specific-user-group-service
description: Service de groupe d'utilisateur spécifique
start_command: "{{ service_test_command }} 28800"
user_name: root
group_name: root
- name: specific-workingdirectory-service
description: Service avec répertoire de travail spécifique
start_command: "{{ service_test_command }} 57600"
working_directory: /tmp
- name: specific-pattern-service
description: Service avec modèle d'état spécifique
start_command: "{{ service_test_command }} 115200"
status_pattern: 115200
- name: variable-service
description: Service avec des variables d'environnement
start_command: "{{ service_test_command }} ${time}"
environment_variables:
time: 230400
- name: pidfile-service
description: Service avec pidfile
start_command: "{{ service_test_command }} 460800"
pidfile: /var/run/pidfile-service.pid
- name: environmentfile-service
description: Service avec environmentfile
start_command: "{{ service_test_command }} 921600"
environmentfile: /environmentfile.txt
La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml
:
---
- name: Préparer
hosts: all
gather_facts: false
become: true
serial: 30%
roles:
- role: buluma.bootstrap
post_tasks:
- name: placer /environmentfile.txt
ansible.builtin.copy:
content: "value=variable"
dest: /environmentfile.txt
mode: "0644"
Voir aussi une explication complète et un exemple sur comment utiliser ces rôles.
Variables du rôle
Les valeurs par défaut des variables sont définies dans defaults/main.yml
:
---
# fichier par défaut pour le service
# service_list peut contenir une liste de services à ajouter au système.
# Les éléments obligatoires pour chaque élément sont :
# - name : Le nom (court) du service, c'est-à-dire "tomcat".
# - description : Un nom un peu plus long, c'est-à-dire "Serveur d'applications Tomcat".
# - start_command : La commande pour démarrer le démon,
# c'est-à-dire "/usr/local/bin/java -jar some.jar"
# Les éléments optionnels sont :
# - stop_command : Par défaut, le programme qui est démarré est trouvé et arrêté.
# si un programme en cours d'exécution est renommé ou étendu (y compris un chemin) lors
# du démarrage, vous pouvez spécifier une commande d'arrêt personnalisée ici, c'est-à-dire "pkill foo"
# - status_pattern : Quel programme (ou motif) rechercher lors de la recherche de
# l'état d'un programme, c'est-à-dire "artifactory".
# - type : Comment le programme démarre ; "simple" ou "forking". Simple signifie que le
# programme s'exécute au premier plan, c'est-à-dire "nc -l 1234". Forking signifie que le
# programme lui-même se détache, c'est-à-dire "nc -l 12345 &"
# - working_directory : Le répertoire dans lequel se rendre avant de démarrer le service.
# - environment_variables : Une liste pour des variables à définir. par exemple :
# environment_variables:
# variable1: valeur1
# variable2: valeur2
# - after : Démarrer après le service mentionné.
# - restart_mode : Le mode à utiliser, par exemple "always".
# - restart_seconds : Le temps alloué à la fin du redémarrage.
service_list: []
Exigences
- paquets pip listés dans requirements.txt.
État des rôles utilisés
Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.
Exigence | GitHub | Version |
---|---|---|
buluma.bootstrap |
Contexte
Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.
Voici un aperçu des rôles connexes :
Compatibilité
Ce rôle a été testé sur ces images de conteneur:
conteneur | tags |
---|---|
EL | 8 |
Debian | tous |
Fedora | tous |
opensuse | tous |
Ubuntu | tous |
Kali | tous |
La version minimale d'Ansible requise est 2.12. Des tests ont été effectués sur :
- La version précédente.
- La version actuelle.
- La version de développement.
Si vous trouvez des problèmes, veuillez les signaler sur GitHub.
Journal des modifications
Licence
Informations sur l'auteur
ansible-galaxy install buluma.service