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 :

Über das Projekt

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

Installieren
ansible-galaxy install teknipc.mercure
GitHub Repository
Lizenz
Unknown
Downloads
253
Besitzer