centos

GitLab在CentOS上的更新方法

小樊
56
2025-09-26 09:25:33
栏目: 智能运维

GitLab在CentOS上的更新方法

一、升级前准备

  1. 数据备份:升级前必须完整备份GitLab所有关键数据,包括数据库、项目仓库及配置文件。使用GitLab自带工具执行完整备份:
    sudo gitlab-rake gitlab:backup:create
    
    备份文件默认存储在/var/opt/gitlab/backups目录,文件名格式为YYYY-MM-DD-HH-mm-ss_gitlab_backup.tar
  2. 当前版本确认:通过以下命令查看当前GitLab版本,明确升级路径(如从15.0升级至16.0):
    sudo gitlab-rake gitlab:env:info
    
  3. 目标版本确定:访问GitLab官方升级文档或下载页面,选择与CentOS系统版本(如CentOS 7/8)兼容的目标版本。
  4. 依赖包检查:确保系统已安装必要依赖(CentOS 7需安装policycoreutilsopenssh-serveropenssh-clientspostfix;CentOS 8/Stream 8+需安装对应替代包),避免升级过程中因依赖缺失失败。

二、具体更新步骤

(一)Omnibus安装方式(推荐,适用于大多数用户)

  1. 停止GitLab服务:停止关键服务以避免数据冲突:
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    sudo gitlab-ctl stop nginx
    
  2. 更新GitLab包
    • 若使用官方YUM仓库安装,直接更新包:
      sudo yum update gitlab-ce
      
    • 若使用RPM包手动安装,下载目标版本RPM包(如gitlab-ce-16.0.0.el7.x86_64.rpm),执行升级:
      sudo rpm -Uvh gitlab-ce-<version>.el7.x86_64.rpm
      
  3. 重新配置与重启
    • 重新配置GitLab以应用新版本设置:
      sudo gitlab-ctl reconfigure
      
    • 重启所有服务:
      sudo gitlab-ctl restart
      
  4. 验证更新
    • 命令行验证版本:
      sudo gitlab-rake gitlab:check
      
    • 或访问GitLab Web界面(如http://your-server-ip),在首页底部查看版本号。

(二)RPM包手动安装方式

  1. 移除旧版本:卸载现有GitLab组件(避免残留文件冲突):
    sudo yum remove gitlab-ce gitlab-ce-cli gitlab-workhorse
    
  2. 下载新版本RPM包:通过GitLab官方仓库或下载页面获取目标版本RPM包(替换<version>为实际版本号):
    wget https://packages.gitlab.com/gitlab/gitlab-ce/el/$(rpm -E %{rhel})/x86_64/gitlab-ce-<version>.el$(rpm -E %{rhel}).x86_64.rpm
    
  3. 安装新版本:使用yum安装下载的RPM包(自动解决依赖):
    sudo yum install ./gitlab-ce-<version>.el$(rpm -E %{rhel}).x86_64.rpm
    
  4. 后续步骤:重复Omnibus方式的“重新配置与重启”“验证更新”步骤。

(三)Docker容器方式(适用于Docker部署)

  1. 备份数据:同前,备份/var/opt/gitlab/backups目录下的备份文件。
  2. 停止并移除旧容器
    docker-compose down -v
    
  3. 拉取最新镜像:从Docker Hub获取最新GitLab CE镜像:
    docker pull gitlab/gitlab-ce:latest
    
  4. 启动新容器:使用原有docker-compose.yml文件启动容器(确保配置一致):
    docker-compose up -d
    
  5. 验证更新:访问Web界面确认版本号。

三、常见问题处理

  1. 进程占用:若gitlab-ctl reconfigure报错(如Chef进程占用),查找并终止相关进程:
    ps aux | grep gitlab
    kill -9 <pid>  # 替换<pid>为实际进程ID
    
  2. 数据库迁移失败:若升级后出现500错误,可能是数据库迁移未完成,手动执行迁移:
    sudo gitlab-rake db:migrate:status  # 检查迁移状态
    sudo gitlab-rake db:migrate          # 执行未完成的迁移
    
  3. 配置文件恢复:若升级后配置异常,可从备份中恢复/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json文件,再执行gitlab-ctl reconfigure

0
看了该问题的人还看了