ubuntu

ubuntu中gitlab版本如何升级

小樊
43
2025-10-06 07:20:58
栏目: 智能运维

Ubuntu中GitLab版本升级指南(Omnibus安装为例)

一、升级前准备工作

  1. 备份所有关键数据
    升级前必须通过GitLab自带工具创建完整备份,涵盖数据库、项目仓库、配置文件等。执行命令:

    sudo gitlab-rake gitlab:backup:create
    

    备份文件默认存储在/var/opt/gitlab/backups目录,需确认备份完整性(如检查文件大小、生成时间)。

  2. 确认当前GitLab版本
    通过以下命令查看当前安装的GitLab版本(包括主版本、次版本、修订号):

    sudo gitlab-rake gitlab:env:info
    

    或登录GitLab Web界面,点击右上角头像→「Help」→「About GitLab」查看。

  3. 查阅官方升级文档
    访问GitLab官方升级指南(如CE版升级说明),明确当前版本到目标版本的升级路径(例如从14.0.x升级到17.x,需依次经过14.0.x→14.3.x→14.9.x→15.0.x等中间版本),避免跨大版本直接升级导致兼容性问题。

  4. 检查系统环境

    • 确保Ubuntu系统为受支持版本(如20.04 LTS、22.04 LTS),避免使用已停止支持的版本(如18.04);
    • 更新系统软件包及内核:
      sudo apt update && sudo apt upgrade -y && sudo reboot
      
    • 确认磁盘空间充足(建议预留至少2倍当前GitLab数据大小的空闲空间);
    • 检查依赖项是否满足新版本要求(如Ruby、PostgreSQL、Redis版本),可通过sudo apt list --upgradable查看可更新的依赖。

二、正式升级步骤(Omnibus包管理器方式)

1. 添加/更新GitLab官方仓库

若尚未添加GitLab官方仓库,执行以下命令添加(以CE版为例):

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

若已添加仓库,可直接执行sudo apt update更新仓库索引。

2. 执行升级操作

运行以下命令升级GitLab到最新可用版本:

sudo apt update
sudo apt upgrade gitlab-ce

若需升级到特定版本(如17.6.1-ce.0),可指定版本号:

sudo apt install gitlab-ce=17.6.1-ce.0

系统会自动下载并安装新版本,期间可能会提示确认依赖项安装,输入Y继续。

3. 重新配置与重启服务

升级完成后,执行reconfigure命令应用新配置:

sudo gitlab-ctl reconfigure

该命令会根据/etc/gitlab/gitlab.rb配置文件重新生成服务配置,随后重启GitLab相关服务:

sudo gitlab-ctl restart

重启过程可能需要几分钟,期间GitLab服务暂时不可用。

三、验证升级结果

  1. 检查版本信息
    执行以下命令确认GitLab已升级到目标版本:

    sudo gitlab-rake gitlab:env:info
    

    或通过GitLab Web界面查看「Help」→「About GitLab」。

  2. 测试核心功能
    登录GitLab Web界面,创建测试项目、推送代码、触发CI/CD流水线,验证项目托管、代码管理、自动化流程等功能是否正常。

  3. 查看系统日志
    若升级后出现异常,可通过以下命令查看GitLab服务日志定位问题:

    sudo gitlab-ctl tail
    

    日志会显示服务启动、数据库迁移、配置加载等过程的详细信息。

四、注意事项

  1. 停机时间
    单节点GitLab实例升级过程中,服务会短暂中断(约5-15分钟,取决于数据量),建议在低峰期操作,并提前通知用户。

  2. 中间版本要求
    跨大版本升级(如14.x→17.x)必须依次经过所有中间版本,不可跳过。例如,从14.0.x升级到17.x,需按顺序完成14.0.x→14.3.x→14.9.x→15.0.x→…→17.x的升级,确保数据库结构、API接口等兼容。

  3. Gitaly服务器升级
    若使用独立Gitaly服务器(分布式存储场景),需先升级Gitaly服务器到与GitLab应用服务器兼容的版本,再升级GitLab应用,避免gRPC通信错误。

  4. 安全补丁优先
    若当前版本存在未修复的高危漏洞(如GitLab 17.6.1修复的远程代码执行漏洞),应立即升级到包含安全补丁的最新版本,而非等待目标版本。

  5. Docker方式升级
    若使用Docker安装GitLab,升级流程略有不同:

    • 拉取最新镜像:docker pull gitlab/gitlab-ce:latest
    • 停止并删除旧容器:docker stop gitlab && docker rm gitlab
    • 用新镜像重新创建容器(保持数据卷挂载路径一致):
      docker run --detach \
        --hostname your-gitlab-domain.com \
        --publish 443:443 --publish 80:80 --publish 22:22 \
        --name gitlab \
        --restart always \
        --volume /srv/gitlab/config:/etc/gitlab \
        --volume /srv/gitlab/logs:/var/log/gitlab \
        --volume /srv/gitlab/data:/var/opt/gitlab \
        gitlab/gitlab-ce:latest
      

    升级后需验证数据卷权限(确保git用户对/srv/gitlab/data有读写权限)。

0
看了该问题的人还看了