GitLab 如何降级?

本分分享 GitLab 降级的流程和注意事项。极狐GitLab 为 GitLab 的中文发行版,本文以私有化部署的极狐GitLab 为例来演示整个过程。

【极狐GitLab 推出 GitLab 老旧版本的专业升级服务https://dl.gitlab.cn/cm33bsfv】,可以让 12.x、13.x、14.x、15.x 等老旧版本的升级平滑不出问题】

首先确定当前的版本信息,在实例 URL 后面加 /help就可以查看:

当前实例为 17.5.1-jh。我们降级到 17.4.0-jh。

降级之前需要做好备份,执行 gitlab-backup create即可开始备份。

# 开始备份
gitlab-backup create
2024-11-13 04:43:09 UTC -- Dumping database ...
2024-11-13 04:43:09 UTC -- Dumping PostgreSQL database gitlabhq_production ...
2024-11-13 04:43:44 UTC -- [DONE]
2024-11-13 04:43:44 UTC -- Dumping database ... done
2024-11-13 04:43:44 UTC -- Dumping repositories ...
{"command":"create","gl_project_path":"devsecops.wiki","level":"info","msg":"started create","pid":321034,"relative_path":"@groups/4f/c8/4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8.wiki.git","storage_name":"default","time":"2024-11-13T04:43:45.332Z"}
......太长删除......
Please back them up manually.
2024-11-13 04:43:46 UTC -- Backup 1731472989_2024_11_13_17.5.1-jh is done.
2024-11-13 04:43:46 UTC -- Deleting backup and restore PID file at [/opt/gitlab/embedded/service/gitlab-rails/tmp/backup_restore.pid] ... done

# 查看备份
ls -ltr /var/opt/gitlab/backups/
-rw------- 1 git git 379535360 Nov 13 04:43 /var/opt/gitlab/backups/1731472989_2024_11_13_17.5.1-jh_gitlab_backup.tar

接着执行降级的步骤,大体为:

  • 停止极狐GitLab
  • 移除当前的软件包
  • 安装降级之后的安装包
  • 重新配置极狐GitLab
  • 恢复备份
  • 启动极狐GitLab

下面我们一步步演示在 ubuntu 22.04 上如何降级安装好的极狐GitLab 实例。

整体步骤

停止极狐GitLab

# If running Puma
sudo gitlab-ctl stop puma

# Stop sidekiq
sudo gitlab-ctl stop sidekiq

移除当前的安装包

# If on Ubuntu: remove the current package
sudo dpkg -r gitlab-jh

安装降级之后的安装包

可以执行 apt-cache madison gitlab-jh找到需要降级的对应安装包信息。本文选择降级到 17.4.0-jh.0

接着执行安装命令进行低版本极狐GitLab 的安装:

apt install gitlab-jh=17.4.0-jh.0

安装成功会显示如下界面:

重新配置极狐GitLab

执行 reconfigure命令重新配置极狐GitLab

# 重新配置实例
gitlab-ctl reconfigure

# 查看组件状态
gitlab-ctl status
run: alertmanager: (pid 323277) 151s; run: log: (pid 323259) 152s
run: gitaly: (pid 323275) 151s; run: log: (pid 323261) 152s
run: gitlab-exporter: (pid 323274) 151s; run: log: (pid 323270) 151s
run: gitlab-kas: (pid 323237) 152s; run: log: (pid 323217) 152s
run: gitlab-workhorse: (pid 323238) 152s; run: log: (pid 323218) 152s
run: logrotate: (pid 323314) 151s; run: log: (pid 323260) 152s
run: nginx: (pid 323315) 151s; run: log: (pid 323263) 152s
run: node-exporter: (pid 323258) 152s; run: log: (pid 323256) 152s
run: postgres-exporter: (pid 323273) 151s; run: log: (pid 323271) 151s
run: postgresql: (pid 323264) 152s; run: log: (pid 323257) 152s
run: prometheus: (pid 323272) 151s; run: log: (pid 323254) 152s
run: puma: (pid 323220) 152s; run: log: (pid 323219) 152s
run: redis: (pid 323223) 152s; run: log: (pid 323221) 152s
run: redis-exporter: (pid 323276) 151s; run: log: (pid 323262) 152s
run: sidekiq: (pid 323224) 152s; run: log: (pid 323222) 152s

恢复数据

# 找到对应的备份文件,恢复数据
gitlab-backup restore BACKUP=1730349575_2024_10_31_17.4.0-jh
2024-11-13 06:09:17 UTC -- Unpacking backup ...
2024-11-13 06:09:18 UTC -- Unpacking backup ... done
2024-11-13 06:09:18 UTC -- Restoring database ...
2024-11-13 06:09:18 UTC -- Be sure to stop Puma, Sidekiq, and any other process that
connects to the database before proceeding. For Omnibus
installs, see the following link for more information:
http://jhma.jihulab.net/help/raketasks/backup_restore.html#restore-for-omnibus-gitlab-installations
......太长删除......
2024-11-13 06:13:09 UTC -- Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data
and are not included in this backup. You will need to restore these files manually.
2024-11-13 06:13:09 UTC -- Restore task is done.
2024-11-13 06:13:09 UTC -- Deleting backup and restore PID file at [/opt/gitlab/embedded/service/gitlab-rails/tmp/backup_restore.pid] ... done

接着访问极狐GitLab 实例,查看对应的版本即可

注意事项

对于极狐GitLab 的降级操作一定是要慎之又慎,而且要确保做好了数据备份。如果在整个过程中出现问题,可以寻求极狐GitLab 专业升级服务https://dl.gitlab.cn/cm33bsfv】。

相关推荐
Nejosi_念旧2 天前
开发常用工具
flutter·vue·gitlab·postman
yaoshengting4 天前
GitLab集成Jira
gitlab·jira
张声录15 天前
【Gossip 协议】Golang的实现库Memberlist 库简介
开发语言·后端·golang·运维开发·prometheus·devops
mrhaoxiaojun5 天前
gitlab runner正常连接 提示 作业挂起中,等待进入队列 解决办法
gitlab
铜锣烧1号5 天前
【学习笔记】GitLab 使用技巧和说明和配置和使用方法
git·python·pycharm·gitlab
极小狐5 天前
如何在 Rocky Linux 上安装极狐GitLab?
gitlab·devsecops·devops·极狐gitlab·安全合规
研究司马懿6 天前
【DevOps】Jenkins配置钉钉邮件通知
运维·pipeline·jenkins·钉钉·devops
ihengshuai6 天前
手摸手实战前端项目CI CD
前端·ci/cd·云原生·kubernetes·devops
ihengshuai7 天前
Gitlab搭建npm仓库
前端·docker·npm·gitlab
Channing Lewis7 天前
在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据
gitlab·mr