buluma.service

Rol de Ansible service

Agrega servicios personalizados a tu sistema Linux.

GitHub Versión Problemas Solicitudes de Pull Descargas
github Version Issues PullRequests Ansible Role

Ejemplo de Playbook

Este ejemplo se toma de molecule/default/converge.yml y se prueba en cada subida, solicitud de extracción y lanzamiento.

---
- 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 Solo largo.

  roles:
    - role: buluma.service
      service_list:
        - name: simple-service
          description: Servicio Simple
          start_command: "{{ service_test_command }} 3600"
          state: started
          enabled: true
        - name: stopped-service
          description: Servicio Simple
          start_command: "{{ service_test_command }} 3601"
          state: stopped
          enabled: false
        - name: specific-stop-service
          description: Servicio de Parada Específica
          start_command: "{{ service_test_command }} 1440"
          stop_command: /usr/bin/killall -f "sleep 1440"
        - name: specific-user-group-service
          description: Servicio de Grupo de Usuario Específico
          start_command: "{{ service_test_command }} 28800"
          user_name: root
          group_name: root
        - name: specific-workingdirectory-service
          description: Servicio de Directorio de Trabajo Específico
          start_command: "{{ service_test_command }} 57600"
          working_directory: /tmp
        - name: specific-pattern-service
          description: Servicio de Patrón de Estado Específico
          start_command: "{{ service_test_command }} 115200"
          status_pattern: 115200
        - name: variable-service
          description: Servicio con variables de entorno
          start_command: "{{ service_test_command }} ${time}"
          environment_variables:
            time: 230400
        - name: pidfile-service
          description: Servicio con pidfile
          start_command: "{{ service_test_command }} 460800"
          pidfile: /var/run/pidfile-service.pid
        - name: environmentfile-service
          description: Servicio con environmentfile
          start_command: "{{ service_test_command }} 921600"
          environmentfile: /environmentfile.txt

La máquina debe estar preparada. En CI esto se hace usando molecule/default/prepare.yml:

---
- name: Preparar
  hosts: all
  gather_facts: false
  become: true
  serial: 30%

  roles:
    - role: buluma.bootstrap

  post_tasks:
    - name: colocar /environmentfile.txt
      ansible.builtin.copy:
        content: "value=variable"
        dest: /environmentfile.txt
        mode: "0644"

También consulta una explicación completa y un ejemplo sobre cómo usar estos roles.

Variables del Rol

Los valores predeterminados para las variables están establecidos en defaults/main.yml:

---
# archivo de valores predeterminados para el servicio

# service_list puede contener una lista de servicios para agregar al sistema.
# Los elementos obligatorios para cada ítem son:
# - name: El nombre (corto) del servicio, i.e. "tomcat".
# - description: Un nombre un poco más largo, i.e. "Servidor de aplicaciones Tomcat".
# - start_command: El comando para iniciar el daemon,
#   i.e. "/usr/local/bin/java -jar some.jar"
# Los elementos opcionales son:
# - stop_command: Por defecto, se encuentra y se detiene el programa que se inicia.
#   en caso de que un programa en ejecución sea renombrado o ampliado (incluyendo una ruta) durante
#   el inicio, puedes especificar un comando de parada personalizado aquí, i.e. "pkill foo"
# - status_pattern: Qué programa (o patrón) buscar cuando se busca el
#   estado de un programa, i.e. "artifactory".
# - type: Cómo se inicia el programa; "simple" o "forking". Simple significa que el
#   programa se ejecuta en primer plano, i.e. "nc -l 1234". Forking significa que
#   el programa en sí se bifurca, i.e. "nc -l 12345 &"
# - working_directory: El directorio al que se debe cambiar antes de iniciar el servicio.
# - environment_variables: Una lista de variables a establecer. por ejemplo:
#   environment_variables:
#     variable1: valor1
#     variable2: valor2
# - after: Iniciar después del servicio mencionado.
# - restart_mode: El modo a utilizar, por ejemplo "siempre".
# - restart_seconds: El tiempo para permitir que el reinicio finalice.
service_list: []

Requisitos

Estado de los roles utilizados

Los siguientes roles se utilizan para preparar un sistema. Puedes preparar tu sistema de otra manera.

Requerimiento GitHub Versión
buluma.bootstrap Ansible Molecule Version

Contexto

Este rol es parte de muchos roles compatibles. Consulta la documentación de estos roles para más información.

Aquí hay un resumen de los roles relacionados:

dependencias

Compatibilidad

Este rol ha sido probado en estas imágenes de contenedor:

contenedor etiquetas
EL 8
Debian todas
Fedora todas
opensuse todas
Ubuntu todas
Kali todas

La versión mínima de Ansible requerida es 2.12, se han realizado pruebas en:

  • La versión anterior.
  • La versión actual.
  • La versión de desarrollo.

Si encuentras problemas, regístralos en GitHub.

Historial de cambios

Historial del Rol

Licencia

Apache-2.0

Información del Autor

Sombra Caminante

Acerca del proyecto

Add custom services to your Linux system.

Instalar
ansible-galaxy install buluma.service
Licencia
apache-2.0
Descargas
396.8k
Propietario
DevOps Engineer