安全高效:CentOS 7 上 GitLab 从 12.2.1 升级到 14.6.4 实战指南
温馨提示:
本文最后更新于 2025年07月23日,已超过 52 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
一、升级前的准备
1. 确认安装方式
- 推荐使用 YUM(基于 RPM 的依赖管理),避免手动管理 RPM 依赖。
- 本文环境:CentOS 7 + 当前 GitLab CE 12.2.1。
2. 确定升级路径
GitLab 必须按大版本顺序逐级升级。此次示例升级路线:
12.2.1 → 12.10.14 → 13.0.0 → 13.12.9 → 14.0.0 → 14.6.4
查看当前版本命令(任选其一):
sudo yum list | grep gitlab-ce
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
3. 准备官方资料
- GitLab 官方下载和升级文档
- GitLab 中文社区资源
二、分步操作
1. 备份现有配置与数据
编辑并备份关键配置:
sudo cp -p /etc/gitlab/gitlab.rb /backup/gitlab/conf/ sudo cp -p /etc/gitlab/gitlab-secrets.json /backup/gitlab/conf/
(可选)调整内部备份策略(存储路径、权限与保留时间):
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" gitlab_rails['backup_archive_permissions'] = 0644 gitlab_rails['backup_keep_time'] = 604800
使配置生效:
sudo gitlab-ctl reconfigure
执行在线数据备份:
sudo gitlab-rake gitlab:backup:create
生成诸如
1644547226_2022_02_11_12.2.1_gitlab_backup.tar
的归档文件。
2. 配置国内 YUM 源
在 /etc/yum.repos.d/gitlab-ce.repo
中添加:
[gitlab-ce]
name=GitLab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1
3. 按版本逐步升级
依次执行:
sudo yum install -y gitlab-ce-12.10.14
sudo yum install -y gitlab-ce-13.0.0
sudo yum install -y gitlab-ce-13.12.9
sudo yum install -y gitlab-ce-14.0.0
sudo yum install -y gitlab-ce-14.6.4
升级完成后,建议重载并重启服务:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
三、回滚与重装
1. 回滚到指定备份
sudo gitlab-rake gitlab:backup:restore BACKUP=<备份名>
# 注意:还原后需拷回 /etc/gitlab 下的配置文件
2. 完全卸载重装
警告:此操作会删除所有数据,务必确保已有完整备份。
sudo gitlab-ctl stop
sudo gitlab-ctl cleanse # 若要保留数据则跳过
sudo gitlab-ctl uninstall
sudo yum remove gitlab-ce
sudo rm -rf /opt/gitlab # 若要保留数据则跳过
若仍有残留,使用:
ps -ef | grep gitlab
sudo kill -9 <PID>
sudo find / -name gitlab | xargs rm -rf
rm -rf ~/gitlab
四、常见故障及解决
问题现象 | 解决方案 |
---|---|
升级后访问失败 | 检查 /etc/gitlab/gitlab.rb 中 external_url 配置是否正确 |
Errno::EACCES … mkdir /var/opt/gitlab/backups/db |
手动创建目录并赋予 GitLab 进程权限 |
Delta RPM 报错:applydeltarpm not installed |
安装依赖:sudo yum install -y deltarpm |
redis: unable to open supervise/ok: file does not exist |
重启运行目录管理服务:sudo systemctl restart gitlab-runsvdir |
通过上述流程,即可在 CentOS 7 上平滑将 GitLab CE 从 12.2.1 安全升级至 14.6.4,并掌握关键的备份、回滚与故障排查技巧。希望对您的运维工作有所帮助!
正文到此结束
- 本文标签: gitlab
- 本文链接: https://code.itptg.com/article/119
- 版权声明: 本文由老魏原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权