buluma.service

Rôle Ansible service

Ajoutez des services personnalisés à votre système Linux.

GitHub Version Issues Pull Requests Téléchargements
github Version Issues PullRequests Ansible Role

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

É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 Ansible Molecule Version

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 :

dépendances

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

Historique du rôle

Licence

Apache-2.0

Informations sur l'auteur

Shadow Walker

À propos du projet

Add custom services to your Linux system.

Installer
ansible-galaxy install buluma.service
Licence
apache-2.0
Téléchargements
396.8k
Propriétaire
DevOps Engineer