卸载与恢复
VOMS 提供三种方式处理卸载和恢复:
| 方式 | 适用场景 | 命令 |
|---|---|---|
| 恢复向导(推荐) | 修复数据库 + 可视化卸载 | curl -sSL https://voms.install.iluwen.cn/recovery.sh | sudo bash |
| 一键卸载入口 | 兼容旧命令,自动跳转恢复向导 | curl -sSL https://voms.install.iluwen.cn/uninstall.sh | sudo bash |
| 手动操作 | 需要精细控制卸载过程 | 见下文 |
恢复向导(推荐)
恢复向导是一个 TUI(终端界面)工具,提供:
- 一键修复 PostgreSQL 用户/密码/数据库并校验 TCP 连接
- 一键卸载 VOMS 残留(服务、systemd、Caddy、目录、数据库)
一键启动
bash
curl -sSL https://voms.install.iluwen.cn/recovery.sh | sudo bash脚本会自动下载 voms-recovery 到 /opt/voms-recovery 并启动 TUI 向导。
启动后会直接在终端显示交互式界面:
- 修复数据库:输入数据库连接信息,重建 PostgreSQL 用户、密码、数据库,并验证 TCP 登录
- 完整卸载:输入确认文本 "UNINSTALL VOMS",执行:停止服务 → 删除 systemd/Caddy/目录 → 清理数据库对象 → 卸载 PostgreSQL/Redis/NATS(服务+数据+容器残留+软件包)→ 残留验证
所有操作都会实时显示日志输出,完成后显示成功或失败结果。
指定版本
bash
VOMS_VERSION=v1.0.0 curl -sSL https://voms.install.iluwen.cn/recovery.sh | sudo bash一键卸载入口
uninstall.sh 现已合并到 Recovery TUI,不再维护独立卸载逻辑:
bash
curl -sSL https://voms.install.iluwen.cn/uninstall.sh | sudo bash执行后会自动跳转并启动 recovery.sh,在同一个 TUI 内完成修复或完整卸载。
DANGER
一键卸载会删除数据库,执行前请确认已备份数据:
bash
sudo -u postgres pg_dump voms_production > /tmp/voms_backup_$(date +%Y%m%d%H%M%S).sql版本回滚
方式零:OTA 备份回滚(最快)
如果版本是通过 OTA 自动更新的,旧版本已备份为 .bak 文件:
bash
sudo systemctl stop voms-server
sudo cp /opt/voms/bin/server.bak /opt/voms/bin/server
sudo systemctl start voms-server
curl -s http://localhost:8181/api/v1/public/system/health | jq .方式一:使用旧版本发布包重新部署
bash
# 1. 停止当前服务
sudo systemctl stop voms-server voms-worker-consumer voms-worker-scheduler
# 2. 切换到旧版发布包目录
cd /opt/voms-release-prev
# 3. 使用 --force 强制重新部署
sudo ./voms-deploy --force
# 4. 验证
curl -s http://localhost:8181/api/v1/public/system/health | jq .方式二:一键重新部署指定版本
bash
VOMS_VERSION=v1.0.0 curl -sSL https://voms.install.iluwen.cn/install.sh | sudo bash这会下载指定版本的发布包并重新执行部署向导(自带 --force)。
方式三:仅回滚二进制(保留配置)
如果只需替换二进制文件而保留现有配置:
bash
# 1. 停止服务
sudo systemctl stop voms-server voms-worker-consumer voms-worker-scheduler
# 2. 备份当前二进制
sudo cp /opt/voms/bin/server /opt/voms/bin/server.bak
sudo cp /opt/voms/bin/worker-consumer /opt/voms/bin/worker-consumer.bak
sudo cp /opt/voms/bin/worker-scheduler /opt/voms/bin/worker-scheduler.bak
# 3. 从旧版发布包复制二进制
sudo cp /opt/voms-release-prev/bin/server /opt/voms/bin/server
sudo cp /opt/voms-release-prev/bin/worker-consumer /opt/voms/bin/worker-consumer
sudo cp /opt/voms-release-prev/bin/worker-scheduler /opt/voms/bin/worker-scheduler
# 4. 重启服务
sudo systemctl start voms-server voms-worker-consumer voms-worker-scheduler
# 5. 验证
curl -s http://localhost:8181/api/v1/public/system/health | jq .手动卸载
如需精细控制每个步骤,可按以下顺序手动操作。
1. 停止并禁用服务
bash
sudo systemctl stop voms-server voms-worker-consumer voms-worker-scheduler
sudo systemctl disable voms-server voms-worker-consumer voms-worker-scheduler2. 删除 systemd 单元文件
bash
sudo rm /etc/systemd/system/voms-server.service
sudo rm /etc/systemd/system/voms-worker-consumer.service
sudo rm /etc/systemd/system/voms-worker-scheduler.service
sudo systemctl daemon-reload3. 删除 Caddy 配置
bash
sudo rm /etc/caddy/Caddyfile
sudo systemctl reload caddy || sudo systemctl restart caddy4. 删除安装目录与前端文件
bash
sudo rm -rf /opt/voms
sudo rm -rf /var/www/voms5. 删除锁文件与部署信息
bash
# 在发布包目录下
rm -f .deploy.lock VOMS-INFO.txt6.(可选)删除数据库
DANGER
此操作不可逆,执行前务必确认已备份数据。
bash
sudo -u postgres psql -c "DROP DATABASE IF EXISTS voms_production;"
sudo -u postgres psql -c "DROP USER IF EXISTS voms;"7.(可选)移除系统用户
bash
sudo userdel voms
sudo groupdel voms 2>/dev/null8.(可选)卸载依赖服务
如果 PostgreSQL、Redis、NATS 仅为 VOMS 安装,可一并移除:
bash
# Ubuntu/Debian 示例
sudo apt remove --purge postgresql redis-server nats-server -y
sudo apt autoremove -yWARNING
请确认这些服务没有被其他应用使用后再卸载。
配置备份与还原
备份
bash
sudo cp /opt/voms/configs/config.production.json \
/opt/voms/configs/config.production.json.bak.$(date +%Y%m%d%H%M%S)还原
bash
sudo cp /opt/voms/configs/config.production.json.bak /opt/voms/configs/config.production.json
sudo systemctl restart voms-server voms-worker-consumer voms-worker-scheduler