Agent press_url 手动 sed
Ansible playbook 执行
agent setup config时未传--press-url参数,Agent config.json 的 press_url 默认写https://frappecloud.com。Agent 连接不上我们的 Press。
1. 归属
| 问题 | 答案 |
|---|---|
| 属于哪个仓库? | Ansible playbook 变量。Agent 代码支持 --press-url 参数,playbook 没传 |
| 在容器内路径? | 宿主机 /home/frappe/agent/config.json(press_url 字段) |
| 在构建链的哪一步? | Ansible Setup Server 阶段 |
2. 功能解释
press_url 做什么?
Agent 用这个 URL 向 Press 注册自己(WebSocket 长连接),接收 Press 推送的 Job。写错 URL → Agent 连不上 Press → 所有 Job Undelivered。
3. 为什么会出现这个问题
agent setup config 的 --press-url 默认值是 https://frappecloud.com。Frappe Cloud 的用户不需要改。自建 Press 必须改,但 Ansible playbook 里漏了传这个参数。
4. 补丁/修改做了什么
sed -i 's|https://frappecloud.com|https://os.getgrowth.app|g' /home/frappe/agent/config.json && supervisorctl restart
5. 性质判断
配置遗漏,非 hack。Agent 本身支持正确的 press_url,只是部署时忘了传。这个问题不限于 n+f 合并——4 VPS 架构下 n-B、f-B、m-B 三台机器都需要正确传 --press-url。
6. 正确做法
Ansible playbook 加 --press-url https://os.solar-flow.ai。全新部署时在 Playbook 变量里设好,一次到位。
7. 影响范围
- 所有 Agent Job 的投递
- 容器重建后重现(press_url 由 playbook 写入,不是永久配置)