teknipc.mercure

Ansible 角色:Mercure

一个用于在 Linux amd64 上使用 systemd 部署 Mercure 的 Ansible 角色。

Mercure 是一种协议,可以方便、快速、可靠且节能地将数据更新推送到网页浏览器和其他 HTTP 客户端。它特别适合通过网络 API 发布异步和实时更新,以满足响应式网页和移动应用的需求。

访问 Mercure GitHub 仓库

要求

需要使用 amd64 架构和 systemd 作为服务管理器的 Linux 操作系统。

角色变量

版本发布

您可以通过 mercure_rocks_release 变量定义要安装的版本。例如:

mercure_rocks_release: "0.9.0"

如果您不定义此变量,将安装最新版本。在这种情况下,如果您重放您的剧本并且有新版本发布,则 Mercure 将会被更新。

预定义变量

mercure_rocks_user: mercure

系统用户和组

mercure_rocks_addr: "127.0.0.1:3000"

监听的地址和端口

mercure_rocks_compress: "true"

支持 HTTP 压缩。设置为 "false" 以禁用

mercure_rocks_cors_allowed_origins: "*"

允许的 CORS 来源列表

mercure_rocks_debug: "false"

设置为 "true" 以启用调试模式

mercure_rocks_demo: "false"

设置为 "true" 以启用演示模式(当 debug=true 时会自动启用)

mercure_rocks_log_format: "TEXT"

日志格式,可以是 JSONFLUENTDTEXT(默认)

mercure_rocks_transport_url: "null://"

历史数据库的 URL 表示。提供的数据库为 "null://" 表示禁用历史,"bolt://" 表示使用 bbolt(例如 "bolt:///var/run/mercure.db?size=100&cleanup_frequency=0.4"

安全性

Mercure 的安全性基于 JWT

您有 3 种选择:

  • 订阅者发布者 定义相同的 JWT 秘钥。
  • 订阅者发布者 定义两个不同的秘钥。
  • 发布者 定义一个秘钥,并允许 订阅者 匿名连接,不需要任何身份验证。

要生成秘钥,您可以使用在线生成器,如 https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx

为订阅者和发布者定义相同的 JWT 秘钥

定义 mercure_rocks_jwt_keymercure_rocks_jwt_algorithm 变量,例如:

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

mercure_rocks_jwt_algorithm 可以设置为 "HS256""RS512"

为订阅者和发布者定义两个不同的秘钥

根据之前的模式定义 mercure_rocks_publisher_jwt_keymercure_rocks_publisher_jwt_algorithmmercure_rocks_subscriber_jwt_keymercure_rocks_subscriber_jwt_algorithm 变量。

为发布者定义一个秘钥并允许订阅者匿名连接

定义 mercure_rocks_publisher_jwt_keymercure_rocks_publisher_jwt_algorithm 变量,并将 mercure_rocks_allow_anonymous 设置为 "true"

查看所有选项请访问 https://mercure.rocks/docs/hub/config。在角色中只需在前面加上 mercure_rocks_

依赖

无。

示例剧本

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

vars/main.yml

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

许可证

BSD

作者信息

此角色由 TeKniPC 的 Denis Soriano 创建。

Mercure 相关信息:

关于项目

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

安装
ansible-galaxy install teknipc.mercure
许可证
Unknown
下载
253
拥有者