teknipc.mercure
Rol de Ansible: Mercure
Un rol de Ansible para desplegar Mercure en Linux amd64 con systemd.
Mercure es un protocolo que permite enviar actualizaciones de datos a navegadores web y otros clientes HTTP de manera conveniente, rápida, fiable y eficiente en el uso de batería. Es especialmente útil para publicar actualizaciones asíncronas y en tiempo real de recursos servidos a través de APIs web, para aplicaciones web y móviles reactivas.
Visita el repositorio de Mercure en GitHub
Requisitos
Sistema operativo Linux con arquitectura amd64 y systemd como gestor de servicios.
Variables del rol
Versión de lanzamiento
Puedes definir la versión a instalar con la variable mercure_rocks_release
, por ejemplo:
mercure_rocks_release: "0.9.0"
Si no defines esta variable, se instalará la última versión disponible. En este caso, si vuelves a ejecutar tu playbook y se ha lanzado una nueva versión, Mercure se actualizará.
Variables predefinidas
mercure_rocks_user: mercure
Usuario y grupo del sistema
mercure_rocks_addr: "127.0.0.1:3000"
La dirección y puerto donde se escuchará
mercure_rocks_compress: "true"
Soporte para compresión HTTP. Establece en "false"
para desactivar.
mercure_rocks_cors_allowed_origins: "*"
Una lista de orígenes permitidos para CORS
mercure_rocks_debug: "false"
Establece en "true"
para activar el modo de depuración
mercure_rocks_demo: "false"
Establece en "true"
para activar el modo demo (se activa automáticamente cuando debug=true)
mercure_rocks_log_format: "TEXT"
El formato de los registros, puede ser JSON
, FLUENTD
o TEXT
(por defecto)
mercure_rocks_transport_url: "null://"
Representación URL de la base de datos de historial. Las bases de datos proporcionadas son "null://"
para deshabilitar el historial, "bolt://"
para usar bbolt (ejemplo "bolt:///var/run/mercure.db?size=100&cleanup_frequency=0.4"
)
Seguridad
La seguridad en Mercure se basa en JWT.
Tienes 3 opciones:
- Definir la misma clave secreta JWT para suscriptores y editores
- Definir dos claves diferentes para suscriptores y editores
- Definir una clave para editores y permitir conexión anónima para suscriptores sin ninguna autenticación
Para generar claves secretas puedes utilizar generadores en línea como https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx
Definir la misma clave secreta JWT para suscriptores y editores
Define las variables mercure_rocks_jwt_key
y mercure_rocks_jwt_algorithm
, por ejemplo:
mercure_rocks_jwt_key: "n2r5u8x!A%D*G-KaPdSgVkYp3s6v9y$B"
mercure_rocks_jwt_algorithm: "HS256"
mercure_rocks_jwt_algorithm
puede ser "HS256"
o "RS512"
Definir dos claves diferentes para suscriptores y editores
Define las variables mercure_rocks_publisher_jwt_key
, mercure_rocks_publisher_jwt_algorithm
, mercure_rocks_subscriber_jwt_key
y mercure_rocks_subscriber_jwt_algorithm
siguiendo el mismo esquema que anteriormente.
Definir una clave para editores y permitir conexión anónima para suscriptores
Define las variables mercure_rocks_publisher_jwt_key
y mercure_rocks_publisher_jwt_algorithm
, y establece mercure_rocks_allow_anonymous
en "true"
.
Consulta todas las opciones en https://mercure.rocks/docs/hub/config. Solo añade el prefijo mercure_rocks_
en el rol.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: servers
vars_files:
- vars/main.yml
roles:
- { role: teknipc.mercure }
en vars/main.yml
mercure_rocks_jwt_key: "n2r5u8x!A%D*G-KaPdSgVkYp3s6v9y$B"
mercure_rocks_jwt_algorithm: "HS256"
mercure_rocks_release: "0.9.0"
Licencia
BSD
Información del autor
Este rol fue creado por Denis Soriano de TeKniPC.
Créditos de Mercure:
- Desarrollador principal: Kevin Dunglas
- Sitio web de Mercure
- Repositorio de Mercure en GitHub
- Mercure es patrocinado por Les-Tilleuls.coop
An Ansible role to deploy Mercure on Linux amd64 with systemd.
ansible-galaxy install teknipc.mercure