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 :
- Développeur principal : Kevin Dunglas
- Site web de Mercure
- Dépôt GitHub de Mercure
- Mercure est sponsorisé par Les-Tilleuls.coop
An Ansible role to deploy Mercure on Linux amd64 with systemd.
ansible-galaxy install teknipc.mercure