温馨提示×

Linux系统中GitLab的更新流程是怎样的

小樊
45
2025-10-18 15:42:15
栏目: 智能运维

Linux系统中GitLab更新流程

1. 升级前准备:确认升级路径

GitLab升级需遵循渐进式版本升级原则,不能跳过中间版本。需根据当前版本查阅官方升级路径指南(如11.4.3→11.11.8→12.0.12→…→14.10.5),确保升级路线合规。可通过GitLab官方文档或sudo gitlab-rake gitlab:env:info命令查看当前版本。

2. 备份关键数据

升级前必须备份所有重要数据,避免操作失误导致数据丢失。常用备份命令:

  • GitLab 12.2及以上版本sudo gitlab-backup create(默认备份路径为/var/opt/gitlab/backups);
  • GitLab 12.1及以下版本sudo gitlab-rake gitlab:backup:create。 备份内容包括数据库、仓库、配置文件、CI/CD设置等。

3. 停止GitLab相关服务

为避免升级过程中数据冲突,需停止GitLab核心服务:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx

部分场景可能需要停止更多服务(如postgresqlredis),具体以官方文档为准。

4. 更新GitLab包

根据安装方式选择对应包管理器更新:

  • Omnibus安装(Debian/Ubuntu)
    sudo apt update
    sudo apt upgrade gitlab-ce
    
  • Omnibus安装(CentOS/RHEL)
    sudo yum update gitlab-ce
    
  • RPM包手动安装:下载最新版本RPM包(如gitlab-ce-<version>.el7.x86_64.rpm),执行sudo yum install /path/to/package.rpm

5. 重新配置与重启服务

更新完成后,重新配置GitLab以应用新设置:

sudo gitlab-ctl reconfigure

然后重启服务使变更生效:

sudo gitlab-ctl restart
# 或单独重启关键服务
sudo gitlab-ctl start unicorn
sudo gitlab-ctl start sidekiq
sudo gitlab-ctl start nginx

6. 验证升级结果

通过以下方式确认升级成功:

  • Web界面:访问GitLab实例(如http://your-server-ip),查看右下角版本号;
  • 命令行:运行sudo gitlab-rake gitlab:check,检查系统状态及版本信息。

7. 容器部署的特殊处理(可选)

若使用Docker运行GitLab,升级流程略有不同:

  • 备份数据:备份/srv/gitlab/config/srv/gitlab/logs/srv/gitlab/data等卷;
  • 停止并删除旧容器
    docker stop gitlab
    docker rm gitlab
    
  • 拉取新镜像并启动
    docker pull gitlab/gitlab-ce:latest
    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
    
  • 验证:访问Web界面确认版本更新。

0