buluma.service
Rol de Ansible service
Agrega servicios personalizados a tu sistema Linux.
GitHub | Versión | Problemas | Solicitudes de Pull | Descargas |
---|---|---|---|---|
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
- paquetes pip listados en requirements.txt.
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 |
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:
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
Licencia
Información del Autor
ansible-galaxy install buluma.service