centos gitlab更新技巧
导读:CentOS 上 GitLab 安全升级技巧 一 升级前的关键准备 完整备份:执行备份并确认备份可用,默认备份目录为 /var/opt/gitlab/backups/。命令示例:sudo gitlab-rake gitlab:backup...
CentOS 上 GitLab 安全升级技巧
一 升级前的关键准备
- 完整备份:执行备份并确认备份可用,默认备份目录为 /var/opt/gitlab/backups/。命令示例:
sudo gitlab-rake gitlab:backup:create。同时备份配置文件 /etc/gitlab/gitlab.rb 与 /etc/gitlab/gitlab-secrets.json。 - 版本与路径确认:查看当前版本与运行状态,命令示例:
sudo gitlab-rake gitlab:env:info、sudo gitlab-ctl status。 - 升级路径核查:跨多个主版本升级时,遵循官方“逐级升级”规则,避免跨多代直接升级导致迁移失败。
- 系统与依赖:保持系统与依赖为较新稳定版本,执行
sudo yum update;确保磁盘空间、I/O、备份窗口充足。 - 变更窗口与回滚预案:选择低峰时段,准备回滚方案(如快照/备份、回退包版本)。
二 标准升级步骤 Omnibus 包管理
- 安装方式确认:大多数 CentOS 场景为 Omnibus 包安装(yum/dnf)。
- 可选停机:为减少写入,可先停止部分服务(可选):
sudo gitlab-ctl stop unicorn、sudo gitlab-ctl stop sidekiq、sudo gitlab-ctl stop nginx。 - 更新软件包:
- 直接升级到仓库最新版:
sudo yum update gitlab-ce(或dnf update gitlab-ce)。 - 指定版本安装:
sudo yum install gitlab-ce-< version>(将 替换为目标版本号)。
- 直接升级到仓库最新版:
- 重新配置与启动:执行
sudo gitlab-ctl reconfigure,随后sudo gitlab-ctl restart。 - 升级后验证:查看版本
sudo gitlab-rake gitlab:env:info,检查服务sudo gitlab-ctl status,必要时运行sudo gitlab-rake gitlab:check。
三 升级路径与版本选择技巧
- 逐级升级:若当前版本较旧,需按官方路径一步步升级,不能直接跳到最新主版本。示例(历史路径):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 → latest 14.Y.Z。
- 查看可用版本:使用
yum --showduplicates list gitlab-ce列出仓库中可用版本,再按需选择中间版本逐步升级。 - 大版本边界:跨越如 13 → 14、14 → 15 等边界时,务必先完成中间版本升级与数据迁移,再进行下一步。
四 常见坑位与快速修复
- 外部 Nginx 502:部分版本升级后(如 13.5+),gitlab-workhorse 的 socket 路径由 /var/opt/gitlab/gitlab-workhorse/socket 调整为 /var/opt/gitlab/gitlab-workhorse/sockets/socket。需同步更新 Nginx upstream:
修改后执行upstream gitlab-workhorse { server unix:/var/opt/gitlab/gitlab-workhorse/sockets/socket; }nginx -s reload。 - 数据库迁移未完成导致 500:执行
sudo gitlab-rake db:migrate:status查看状态,必要时sudo gitlab-rake db:migrate完成迁移。 - 重新配置卡死或 Chef 占用:排查进程
ps aux | grep gitlab,必要时终止相关 PID 后再gitlab-ctl reconfigure。 - 版本未变化或组件异常:执行
sudo gitlab-ctl reconfigure & & sudo gitlab-ctl restart,再用gitlab-rake gitlab:env:info与gitlab-ctl status校验。
五 回滚与最小化停机策略
- 快速回滚:优先使用同版本的已下载 RPM 包进行回退安装(如
sudo yum downgrade gitlab-ce-< old_version>),回退后执行sudo gitlab-ctl reconfigure & & sudo gitlab-ctl restart。 - 备份恢复:若升级失败或数据异常,先停服务,再用备份恢复:
sudo gitlab-rake gitlab:backup:restore(按提示选择备份文件),恢复后sudo gitlab-ctl reconfigure & & sudo gitlab-ctl restart。 - 最小化停机:对高可用场景,建议先在测试环境演练升级与回滚;生产环境可在维护窗口内分阶段切换,确保回滚路径可用再实施。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos gitlab更新技巧
本文地址: https://pptw.com/jishu/760796.html
