teknipc.mercure

Rôle Ansible : Mercure

Un rôle Ansible pour déployer Mercure sur Linux amd64 avec systemd.

Mercure est un protocole permettant de pousser des mises à jour de données vers des navigateurs web et d'autres clients HTTP de manière pratique, rapide, fiable et économe en énergie. Il est particulièrement utile pour publier des mises à jour asynchrones et en temps réel des ressources servies via des APIs web, pour des applications web et mobiles réactives.

Visitez le dépôt GitHub de Mercure.

Exigences

Système d'exploitation Linux avec architecture amd64 et systemd comme gestionnaire de services.

Variables de rôle

Version à installer

Vous pouvez définir la version à installer avec la variable mercure_rocks_release, par exemple :

mercure_rocks_release: "0.9.0"

Si vous ne définissez pas cette variable, la dernière version sera installée. Dans ce cas, si vous relancez votre playbook et qu'une nouvelle version est disponible, Mercure sera mis à jour.

Variables prédéfinies

mercure_rocks_user: mercure

Utilisateur et groupe système

mercure_rocks_addr: "127.0.0.1:3000"

L'adresse et le port sur lesquels écouter

mercure_rocks_compress: "true"

Support de la compression HTTP. Mettez sur "false" pour désactiver.

mercure_rocks_cors_allowed_origins: "*"

Une liste des origines CORS autorisées

mercure_rocks_debug: "false"

Mettez sur "true" pour activer le mode débogage

mercure_rocks_demo: "false"

Mettez sur "true" pour activer le mode démo (activé automatiquement lorsque debug=true)

mercure_rocks_log_format: "TEXT"

Format des journaux, peut être JSON, FLUENTD ou TEXT (par défaut)

mercure_rocks_transport_url: "null://"

Représentation URL de la base de données d'historique. Les options disponibles sont "null://" pour désactiver l'historique, "bolt://" pour utiliser bbolt (exemple "bolt:///var/run/mercure.db?size=100&cleanup_frequency=0.4").

Sécurité

La sécurité dans Mercure est basée sur JWT.

Vous avez 3 options :

  • Définir la même clé secrète JWT pour les abonnés et les éditeurs
  • Définir deux clés différentes pour les abonnés et les éditeurs
  • Définir une clé pour les éditeurs et permettre la connexion anonyme pour les abonnés sans authentification

Pour générer des clés secrètes, vous pouvez utiliser des générateurs en ligne comme https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx.

Définir la même clé secrète JWT pour abonnés et éditeurs

Définissez les variables mercure_rocks_jwt_key et mercure_rocks_jwt_algorithm, par exemple :

mercure_rocks_jwt_key: "n2r5u8x!A%D*G-KaPdSgVkYp3s6v9y$B"
mercure_rocks_jwt_algorithm: "HS256"

mercure_rocks_jwt_algorithm peut être réglé sur "HS256" ou "RS512".

Définir deux clés différentes pour abonnés et éditeurs

Définissez les variables mercure_rocks_publisher_jwt_key, mercure_rocks_publisher_jwt_algorithm, mercure_rocks_subscriber_jwt_key et mercure_rocks_subscriber_jwt_algorithm selon le même schéma que précédemment.

Définir une clé pour les éditeurs et permettre la connexion anonyme pour les abonnés

Définissez les variables mercure_rocks_publisher_jwt_key et mercure_rocks_publisher_jwt_algorithm et mettez mercure_rocks_allow_anonymous sur "true".

Voir toutes les options sur https://mercure.rocks/docs/hub/config. Il suffit de les préfixer par mercure_rocks_ dans le rôle.

Dépendances

Aucune.

Exemple de Playbook

- hosts: servers
  vars_files:
    - vars/main.yml
  roles:
    - { role: teknipc.mercure }

dans vars/main.yml

mercure_rocks_jwt_key: "n2r5u8x!A%D*G-KaPdSgVkYp3s6v9y$B"
mercure_rocks_jwt_algorithm: "HS256"
mercure_rocks_release: "0.9.0"

Licence

BSD

Informations sur l'auteur

Ce rôle a été créé par Denis Soriano de TeKniPC.

Crédits Mercure :

À propos du projet

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

Installer
ansible-galaxy install teknipc.mercure
Licence
Unknown
Téléchargements
253
Propriétaire