fleetdfleetd
指南
设计
  • English
  • 简体中文
GitHub
指南
设计
  • English
  • 简体中文
GitHub
  • 介绍
  • 快速开始
  • 部署服务端
  • 接入机器
  • 命令和终端
  • 客户端更新
  • 告警
  • 配置参考
  • 常见问题

客户端更新

客户端可以在后台远程更新。服务端只能决定什么时候更新,决定不了装什么:客户端只接受用你的发布私钥签过名的版本。

发布新版本

在保存了 release.key 的电脑上:

VERSION=0.2.0 deploy/build.sh

会生成 bin/fleetd-agent-0.2.0-amd64.release 和 bin/fleetd-agent-0.2.0-arm64.release。版本号格式是 主版本.次版本.修订号,必须递增。

在「设置 → 客户端发布包」上传这些文件。如果服务端配置了 release_key,用其他密钥签名的包会直接被拒绝。

推送更新

  1. 打开一台机器的详情页,选择新版本,点「更新客户端」。
  2. 等它带着新版本重新上线。结果记录在「告警 → 历史记录」里。
  3. 在「设置 → 客户端发布包」点「更新所有旧版本」,更新同一架构上所有版本较旧的在线机器。

有意不做全自动更新:一个有问题的版本如果同时推到所有机器,可能让它们全部掉线,而掉线的客户端没法再从后台修复。

客户端会检查什么

遇到下面这些情况,客户端会拒绝安装并报告原因:

  • 不是用它配置里的 release_key 签的,或者文件被改过;
  • 是给另一种 CPU 架构的;
  • 版本不比当前运行的新(防止回退到有漏洞的旧版本);
  • 新程序运行不起来,或者报告的版本和签名里的不一致。

否则它会原子地替换自己,把旧程序留成 fleetd-agent.old,然后退出,由 systemd 或 procd 拉起新版本。

配置里没有 release_key 的客户端不接受远程更新。

手动回滚

mv /usr/local/bin/fleetd-agent.old /usr/local/bin/fleetd-agent && systemctl restart fleetd-agent

OpenWrt 上程序在 /usr/bin/fleetd-agent。

更新服务端

替换 /usr/local/bin/fleetd-server 后重启即可,数据库结构会在启动时自动升级。客户端会在一分钟内自动重连。

在 GitHub 上编辑此页
最后更新: 2026/11/3 11:50
贡献者: weiyi
Prev
命令和终端
Next
告警