一键升级来了!CyberStrikeAI 新增“一键升级脚本”
最近很多伙伴反复提到同一句话:
“更新太麻烦了,能不能来个一键升级?”
它解决了什么?
升级脚本的设计目标是「安全、可控、尽量少出错」:
升级前先备份:把 config.yaml、data/(以及可选目录)打包备份到.upgrade-backup/自动拉取版本:从 GitHub Release 拉取指定版本(不传版本号则默认最新 Release) 同步覆盖代码:使用 rsync --delete同步升级代码,确保文件状态尽量匹配目标版本升级完成后启动:脚本会在末尾重新执行 run.sh来启动服务
默认保留哪些内容?
为了最大程度减少升级风险,默认会保留:
config.yamldata/venv/(Python 依赖环境)
如果你希望“升级更彻底”,可以选择不保留 venv/(升级后会重新安装 Python 依赖)。
常用参数(按需选择)
./upgrade.sh
使用最新 Release 升级./upgrade.sh --tag vX.Y.Z
升级到指定版本./upgrade.sh --preserve-custom
保留并备份roles/、skills/、tools/(可能会覆盖上游更新,请谨慎使用)./upgrade.sh --no-venv
不保留venv/,升级后会重新安装 Python 依赖./upgrade.sh --no-stop
不尝试停止正在运行的服务./upgrade.sh --force-stop
找不到当前目录下的进程时,也会尝试停止匹配的cyberstrike-ai进程(谨慎使用)./upgrade.sh --yes
非交互模式,不弹出确认提示
一键升级怎么用?(示例)
在项目目录执行:
chmod +x upgrade.sh
./upgrade.sh --yes
升级到指定版本(例如 v1.3.28):
./upgrade.sh --tag v1.3.28 --yes
如果你做过自定义扩展,需要保留自定义目录:
./upgrade.sh --preserve-custom --yes
小提醒
第一次使用建议先手动确认一次(不带 --yes),脚本会提示你“将保留/不保留哪些目录”--preserve-custom可能会让你自定义的内容覆盖上游更新,建议在发布新版本时评估一下兼容性
结尾
更新变简单了,但安全依然重要。希望这个“一键升级脚本”能真正减轻你的运维成本,让你把时间用在更高价值的安全测试与自动化编排上。