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:

Acerca del proyecto

An Ansible role to deploy Mercure on Linux amd64 with systemd.

Instalar
ansible-galaxy install teknipc.mercure
Licencia
Unknown
Descargas
253
Propietario