teknipc.mercure
Ansible Rolle: Mercure
Eine Ansible Rolle zur Bereitstellung von Mercure auf Linux amd64 mit systemd.
Mercure ist ein Protokoll, das es ermöglicht, Datenaktualisierungen auf einfache, schnelle, zuverlässige und energieeffiziente Weise an Webbrowser und andere HTTP-Clients zu übertragen. Es ist besonders nützlich, um asynchrone und Echtzeit-Aktualisierungen von Ressourcen zu veröffentlichen, die über Web-APIs bereitgestellt werden, für reaktive Web- und Mobile-Apps.
Besuchen Sie das Mercure GitHub-Repository
Anforderungen
Linux-Betriebssystem mit amd64-Architektur und systemd als Dienstmanager.
Rollenvariablen
Versionsveröffentlichung
Sie können die zu installierende Version mit der Variable mercure_rocks_release
festlegen, z.B.:
mercure_rocks_release: "0.9.0"
Wenn Sie diese Variable nicht festlegen, wird die neueste Version installiert. In diesem Fall wird Mercure aktualisiert, wenn Sie Ihr Playbook erneut ausführen und eine neue Version verfügbar ist.
Vorgedefinierte Variablen
mercure_rocks_user: mercure
Systembenutzer und Gruppe
mercure_rocks_addr: "127.0.0.1:3000"
Die Adresse und der Port, auf denen zugehört werden soll
mercure_rocks_compress: "true"
Unterstützung für HTTP-Kompression. Setzen Sie dies auf "false"
, um es zu deaktivieren.
mercure_rocks_cors_allowed_origins: "*"
Eine Liste von erlaubten CORS-Quellen
mercure_rocks_debug: "false"
Setzen Sie dies auf "true"
, um den Debug-Modus zu aktivieren
mercure_rocks_demo: "false"
Setzen Sie dies auf "true"
, um den Demomodus zu aktivieren (automatisch aktiviert, wenn debug=true).
mercure_rocks_log_format: "TEXT"
Das Log-Format, kann JSON
, FLUENTD
oder TEXT
(Standard) sein.
mercure_rocks_transport_url: "null://"
URL-Darstellung der Verlaufsdatenbank. Bereitgestellte Datenbanken sind "null://"
zum Deaktivieren des Verlaufs, "bolt://"
zur Verwendung von bbolt (Beispiel: "bolt:///var/run/mercure.db?size=100&cleanup_frequency=0.4"
)
Sicherheit
Die Sicherheit in Mercure basiert auf JWT.
Sie haben 3 Optionen:
- Definieren Sie denselben JWT-Geheimschlüssel für Abonnenten und Publisher
- Definieren Sie zwei unterschiedliche Schlüssel für Abonnenten und Publisher
- Definieren Sie einen Schlüssel für Publisher und erlauben Sie anonyme Verbindungen für Abonnenten ohne Authentifizierung
Um geheime Schlüssel zu generieren, können Sie Online-Generatoren wie https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx verwenden.
Definieren Sie denselben JWT-Geheimschlüssel für Abonnenten und Publisher
Definieren Sie die Variablen mercure_rocks_jwt_key
und mercure_rocks_jwt_algorithm
, zum Beispiel :
mercure_rocks_jwt_key: "n2r5u8x!A%D*G-KaPdSgVkYp3s6v9y$B"
mercure_rocks_jwt_algorithm: "HS256"
mercure_rocks_jwt_algorithm
kann auf "HS256"
oder "RS512"
gesetzt werden.
Definieren Sie zwei verschiedene Schlüssel für Abonnenten und Publisher
Definieren Sie die Variablen mercure_rocks_publisher_jwt_key
, mercure_rocks_publisher_jwt_algorithm
, mercure_rocks_subscriber_jwt_key
und mercure_rocks_subscriber_jwt_algorithm
basierend auf demselben Schema wie zuvor.
Definieren Sie einen Schlüssel für Publisher und erlauben Sie anonyme Verbindungen für Abonnenten
Definieren Sie die Variablen mercure_rocks_publisher_jwt_key
und mercure_rocks_publisher_jwt_algorithm
und setzen Sie mercure_rocks_allow_anonymous
auf "true"
.
Sehen Sie sich alle Optionen auf https://mercure.rocks/docs/hub/config an. Fügen Sie einfach mercure_rocks_
vor dem Namen in der Rolle ein.
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: servers
vars_files:
- vars/main.yml
roles:
- { role: teknipc.mercure }
in vars/main.yml
mercure_rocks_jwt_key: "n2r5u8x!A%D*G-KaPdSgVkYp3s6v9y$B"
mercure_rocks_jwt_algorithm: "HS256"
mercure_rocks_release: "0.9.0"
Lizenz
BSD
Autoreninformationen
Diese Rolle wurde von Denis Soriano von TeKniPC erstellt.
Mercure Credits :
- Leitender Entwickler: Kevin Dunglas
- Mercure-Website
- Mercure GitHub-Repository
- Mercure wird von Les-Tilleuls.coop gesponsert.
An Ansible role to deploy Mercure on Linux amd64 with systemd.
ansible-galaxy install teknipc.mercure