当前位置: 首页 > news >正文

私有化gitlab版本升级步骤(以版本12.9.0为例)

将 GitLab 12.9.0(Omnibus 安装)升级到最新版本需遵循逐步升级路径(不可跨多个大版本直接升级),以避免数据损坏。以下是详细步骤:

一、升级前准备(必须执行)

1. 备份所有数据(核心!)
# 1. 备份 GitLab 数据(含仓库、数据库、配置等)
sudo gitlab-rake gitlab:backup:create
# 备份文件会生成在 /var/opt/gitlab/backups/,格式:[时间戳]_gitlab_backup.tar# 2. 备份配置文件(防止升级后配置丢失)
sudo cp -r /etc/gitlab /etc/gitlab_backup_$(date +%F)
  • 建议将备份文件复制到服务器外的安全存储(如本地电脑)。
2. 确认当前版本和安装方式
# 确认版本(应为 12.9.0)
sudo gitlab-rake gitlab:env:info | grep "GitLab version"# 确认是 Omnibus 安装(应有输出)
which gitlab-ctl
3. 检查系统资源

最新版 GitLab 建议:内存 ≥ 4GB(推荐 8GB+),磁盘 ≥ 20GB 空闲,避免升级中因资源不足失败。

二、升级路径(12.9.0 → 最新版本)

GitLab 官方规中,跨大版本升级需按以下路径逐步进行(以最新版 16.11.5 为例):12.9.0 → 12.10.14 → 13.12.15 → 14.10.5 → 15.11.10 → 16.11.5

步骤 1:升级到 12.10.14(同大版本最新)
# 1. 安装 12.10.14 版本(社区版 CE)
sudo yum install -y gitlab-ce-12.10.14# 2. 重新配置 GitLab(自动处理数据库迁移)
sudo gitlab-ctl reconfigure# 3. 检查服务状态(确保所有组件正常运行)
sudo gitlab-ctl status# 4. 验证版本(应为 12.10.14)
sudo gitlab-rake gitlab:env:info | grep "GitLab version"
步骤 2:升级到 13.12.15
# 1. 安装 13.12.15
sudo yum install -y gitlab-ce-13.12.15# 2. 重新配置
sudo gitlab-ctl reconfigure# 3. 检查状态(若有错误,查看日志:sudo gitlab-ctl tail)
sudo gitlab-ctl status# 4. 验证版本
sudo gitlab-rake gitlab:env:info | grep "GitLab version"
步骤 3:升级到 14.10.5
sudo yum install -y gitlab-ce-14.10.5
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status
# 验证版本
步骤 4:升级到 15.11.10
sudo yum install -y gitlab-ce-15.11.10
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status
# 验证版本
步骤 5:升级到最新版本(以 16.11.5 为例,可替换为最新版)
# 1. 先更新仓库源(确保获取最新包)
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash# 2. 安装最新版(或指定具体版本,如 gitlab-ce-16.11.5)
sudo yum install -y gitlab-ce  # 自动安装最新版# 3. 重新配置
sudo gitlab-ctl reconfigure# 4. 检查状态
sudo gitlab-ctl status

三、升级后验证

  1. 访问 GitLab 网页:登录 GitLab 控制台,确认项目、用户、CI/CD 配置等数据完整。

  2. 验证核心功能

    • 提交代码触发流水线,确认 Runner 正常工作。
    • 检查仓库克隆、分支创建等基础操作是否正常。
  3. 查看日志(无报错)

sudo gitlab-ctl tail  # 实时查看日志,按 Ctrl+C 退出

四、回滚方案(若升级失败)

若升级后服务异常,用备份回滚:

# 1. 停止服务
sudo gitlab-ctl stop# 2. 恢复数据(替换 [时间戳] 为备份文件的时间戳)
sudo gitlab-rake gitlab:backup:restore BACKUP=[时间戳]# 3. 恢复配置文件
sudo rm -rf /etc/gitlab
sudo cp -r /etc/gitlab_backup_xxxx-xx-xx /etc/gitlab# 4. 重启服务
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

注意事项

  1. 版本号获取:最新版本号可在 GitLab 官方下载页 查看,替换命令中的版本号即可。

  2. 网络问题:若下载慢,可配置国内镜像(如清华大学镜像),参考 GitLab 镜像配置。

  3. Runner 兼容:升级 GitLab 后,建议将 Runner 也升级到最新版:

  4. 时间窗口:每步升级约需 5-10 分钟(视数据量),建议在业务低峰期操作,并提前通知用户。

sudo gitlab-runner stop
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
sudo gitlab-runner start

按以上步骤逐步升级,可安全将 GitLab 从 12.9.0 升级到最新版本,同时保留所有数据和自动化部署配置。

http://www.dtcms.com/a/392681.html

相关文章:

  • 基于java+springboot的超市仓库管理系统
  • Ubuntu 下练习编译 `.deb` 包的完整指南(适用于批量部署)
  • ICCV | 2025 | SkySense V2:面向多模态遥感的统一基础模型
  • 基于C# winform实现PP-HumanSeg人像分割替换背景色更换背景色
  • 对ai产品,设计测试case
  • ns-3 中一个最核心、最基本的概念——分组
  • C++八股 —— 编译过程
  • CMake笔记:cmake -G “NMake Makefiles“ 后,如何生成debug与release?
  • 解决 pip 安装报错:Could not find a suitable TLS CA certificate bundle
  • Python快速入门专业版(三十七):Python元组:不可变序列的特点与应用场景(对比列表)
  • 【UnoCSS快速上手】:安装、配置与优化,以及遇到的问题
  • 探索 Event 框架 5:实现Spring Boot集成
  • ARM(15) - LCD(2)显示字母数字+touch
  • 五、炫饭馆项目实战
  • 01.容器生态系统
  • CSS Grid 布局示例 - grid-template-areas
  • 基于脚手架微服务的视频点播系统-客户端业务逻辑处理部分(一)
  • 501. 二叉搜索树中的众数
  • Go面试题及详细答案120题(81-100)
  • 在跨平台C++项目中条件化使用Intel MKL与LAPACK/BLAS进行矩阵计算
  • 知芽AI(paperxx)写作:开题报告写作宝典
  • c++26新功能—模板参数中的概念与变量模板
  • Linux服务器上安装配置GitLab的步骤
  • Netty原理介绍
  • 【已解决】在windows系统安装fasttext库,解决安装fasttext报错问题
  • 从“free”到“free_s”:内存释放更安全——free_s函数深度解析与free全方位对比
  • 【LeetCode 每日一题】1733. 需要教语言的最少人数
  • 多模态知识图谱
  • 基于python spark的航空数据分析系统的设计与实现
  • 【每日一问】运放单电源供电和双电源供电的区别是什么?