teknipc.mercure
Ansible 角色:Mercure
一个用于在 Linux amd64 上使用 systemd 部署 Mercure 的 Ansible 角色。
Mercure 是一种协议,可以方便、快速、可靠且节能地将数据更新推送到网页浏览器和其他 HTTP 客户端。它特别适合通过网络 API 发布异步和实时更新,以满足响应式网页和移动应用的需求。
要求
需要使用 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"
日志格式,可以是 JSON
,FLUENTD
或 TEXT
(默认)
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_key
和 mercure_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_key
,mercure_rocks_publisher_jwt_algorithm
,mercure_rocks_subscriber_jwt_key
和 mercure_rocks_subscriber_jwt_algorithm
变量。
为发布者定义一个秘钥并允许订阅者匿名连接
定义 mercure_rocks_publisher_jwt_key
和 mercure_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 相关信息:
- 主要开发者:Kevin Dunglas
- Mercure 网站
- Mercure GitHub 仓库
- Mercure 由 Les-Tilleuls.coop 提供赞助。