温馨提示×

ubuntu gitlab如何升级版本

小樊
42
2025-12-22 17:11:35
栏目: 智能运维

Ubuntu 上升级 GitLab 版本的标准流程


一 升级前准备

  • 确认当前版本与升级目标
    • 查看版本:
      • 命令:sudo gitlab-rake gitlab:env:infocat /opt/gitlab/embedded/service/gitlab-rails/VERSION
      • 浏览器访问:https://你的域名或IP/help
    • 查看可升级版本:apt policy gitlab-ceapt policy gitlab-ee(显示 Installed 与 Candidate)。
  • 核对升级路径
    • 多数版本不支持跨大版本直接升级,需要按官方路径逐级升级;可使用官方升级路径工具校验:https://gitlab.cn/support/toolbox/upgrade-path/。
  • 完整备份与回滚方案
    • 备份:sudo gitlab-rake gitlab:backup:create(默认备份到 /var/opt/gitlab/backups)。
    • 建议同时做系统快照/关机快照,便于回滚。
  • 维护窗口与通知
    • 升级期间会重启服务,建议安排在低峰期并提前通知用户。
  • 检查可用资源
    • 确保磁盘空间充足、内存建议≥4GB,避免因资源不足导致 reconfigure 或迁移失败。

二 标准升级步骤

  • 更新索引与仓库(CE/EE 二选一)
    • CE:sudo apt update && sudo apt install --download-only gitlab-ce
    • EE:sudo apt update && sudo apt install --download-only gitlab-ee
  • 执行升级
    • 直接升级到仓库最新版:sudo apt install gitlab-ce(或 gitlab-ee)。
    • 指定版本(示例):sudo apt install gitlab-ce=15.11.0-ce.0(或 gitlab-ee=15.11.0-ee.0)。
  • 重新配置与重启
    • sudo gitlab-ctl reconfigure
    • sudo gitlab-ctl restart
  • 验证
    • 版本:sudo gitlab-rake gitlab:env:info 或访问 /help 页面。
    • 服务状态:sudo gitlab-ctl status

三 跨大版本与数据库升级要点

  • 严格按升级路径逐级进行
    • 例如历史版本常见路径包含:8.11.Z → 8.12.0 → 8.17.7 → 9.5.10 → 10.8.7 → 11.11.8 → 12.0.12 → 12.1.17 → 12.10.14 → 13.0.14 → 13.1.11 → 13.8.8 → 13.12.15 → 14.0.12 → 14.Y.Z
  • 升级前在每个台阶验证功能正常后再继续下一步。
  • 数据库版本要求
    • 某些大版本对内置 PostgreSQL 有硬性要求。例如升级到 GitLab 18.0 需要 PostgreSQL 16.x
    • 若不满足,先在同大版本内升级到最新小版本(如 17.11.x),再使用 sudo gitlab-ctl pg-upgrade 升级数据库,最后升级到目标版本。
  • 升级失败快速回滚
    • 先恢复最近备份(注意备份与恢复两端的 GitLab 版本需一致,包含数据库版本):
      • 恢复:sudo gitlab-rake gitlab:backup:restore BACKUP=时间戳
    • 或使用升级前的系统快照回滚。

四 常见问题与排查

  • 升级命令报错(如 dpkg 预安装脚本失败)
    • 多因数据库版本不满足新版本要求。先在同大版本内升级到最新小版本,完成 gitlab-ctl pg-upgrade 后再升级目标版本。
  • 配置文件变更导致 reconfigure 失败
    • 例如旧写法 git_data_dir 已在 11.0 移除,需改为:
      • git_data_dirs({ "default" => { "path" => "/data/git" } })
  • 升级后页面 500 或健康检查失败
    • 查看日志:sudo gitlab-ctl tail;确认数据库迁移是否完成、资源是否充足、备份恢复是否一致。
  • 升级耗时较长或 SSH 易断
    • 建议使用带界面的终端或 screen/tmux 会话,避免网络中断导致升级中断。

五 建议的升级顺序清单

  • 备份与回滚方案就绪(含系统快照)。
  • 核对当前版本与目标版本,并用官方工具校验升级路径。
  • 逐台阶升级:同大版本内先到最新小版本 → 满足数据库前置条件 → 再跨到下一个大版本。
  • 每台阶执行:reconfigurerestartstatus 与功能验证。
  • 生产环境先在测试环境演练,确认无误再上线。

0