robertdebock.service
Rôle Ansible service
Ajoutez des services personnalisés à votre système Linux.
GitHub | GitLab | Téléchargements | Version |
---|---|---|---|
Exemple de Playbook
Cet exemple est tiré de molecule/default/converge.yml
et est testé à chaque poussée, demande de tirage et sortie.
---
- nom: Convergence
hôtes: tous
devenir: vrai
rassembler_faits: vrai
vars:
_service_test_command:
par défaut: /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.
rôles:
- rôle: robertdebock.service
service_list:
- nom: simple-service
description: Service Simple
start_command: "{{ service_test_command }} 3600"
état: démarré
activé: vrai
- nom: stopped-service
description: Service Simple
start_command: "{{ service_test_command }} 3601"
état: arrêté
activé: faux
- nom: specific-stop-service
description: Service d'arrêt spécifique
start_command: "{{ service_test_command }} 1440"
stop_command: /usr/bin/killall -f "sleep 1440"
- nom: specific-user-group-service
description: Service d'utilisateur spécifique
start_command: "{{ service_test_command }} 28800"
user_name: root
group_name: root
- nom: specific-workingdirectory-service
description: Service avec répertoire de travail spécifique
start_command: "{{ service_test_command }} 57600"
working_directory: /tmp
- nom: specific-pattern-service
description: Service avec motif d'état spécifique
start_command: "{{ service_test_command }} 115200"
status_pattern: 115200
- nom: variable-service
description: Service avec variables d'environnement
start_command: "{{ service_test_command }} ${time}"
environment_variables:
time: 230400
- nom: pidfile-service
description: Service avec pidfile
start_command: "{{ service_test_command }} 460800"
pidfile: /var/run/pidfile-service.pid
- nom: environmentfile-service
description: Service avec fichier d'environnement
start_command: "{{ service_test_command }} 921600"
environmentfile: /environmentfile.txt
La machine doit être préparée. Dans CI, cela est fait en utilisant molecule/default/prepare.yml
:
---
- nom: Préparer
hôtes: tous
devenir: vrai
rassembler_faits: faux
série: 30%
rôles:
- rôle: robertdebock.bootstrap
post_tasks:
- nom: Placer /environmentfile.txt
ansible.builtin.copy:
content: "value=variable"
dest: /environmentfile.txt
mode: "0644"
Voir aussi une explication complète et un exemple sur la manière d'utiliser ces rôles.
Variables de rôle
Les valeurs par défaut pour les 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 :
# - nom : Le (court) nom du service, c'est-à-dire "tomcat".
# - description : Un nom un peu plus long, c'est-à-dire "Serveur d'application 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é.
# dans le cas où un programme en cours d'exécution est renommé ou étendu (y compris un chemin) durant
# le 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 fonctionne au premier plan, c'est-à-dire "nc -l 1234". Forking signifie que le
# programme lui-même fork, c'est-à-dire "nc -l 12345 &"
# - working_directory : Le répertoire dans lequel aller avant de démarrer le service.
# - environment_variables : Une liste pour les 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 pour permettre à la redémarrage de se terminer.
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 | GitLab |
---|---|---|
robertdebock.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 conteneurs:
conteneur | tags |
---|---|
EL | 9 |
Debian | tous |
Fedora | tous |
Ubuntu | 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 rencontrez des problèmes, veuillez les signaler sur GitHub.
Licence
Informations sur l'auteur
Veuillez envisager de me soutenir.
ansible-galaxy install robertdebock.service