没开头没结尾,直接上正题。

gitlab 用到了很多服务,不过官方将 gitlab 的安装启动做的相当完美,一键就可以全部启动。直接可以将它看做一个整体。

最近我看公司的 gitlab 版本不爽,想升个级。保险起见,先测一下,博客记录一把。gitlab升级真是麻烦,开始想的是导出后直接启动一个新版本的 gitlab ,然后将备份下来的数据导入就齐活儿了。结果是我想的太简单了,不同版本是不能被导入的。于是只能升级了。

撸到官方文档给的升级步骤。

官方升级文档建议:https://docs.gitlab.com/ee/update/

国内清华下载 gitlab 包的地址: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

==========================================

进入上面链接的官方文档,找到下图的位置,可以看到红框中,是从 8.11.x 版本升级到最新版本的步骤。这就好比是做公交了,沿途经过了好几站,我们要做的就是找到和自己当前版本最近的下一站开始上车,沿途每一站都停一下,直到我们到站就可以下车了。

此次我的版本是 gitlab.12.0.3 ,我要到终点站 gitlab.13.11.3 。那么按照下图,12.0.12 是离我当前版本最近的下一站,那么我就要从这里上车,然后 13.1.11 的下一站直接就到 13.12.x 版本了,那么我就可以在到这一站和上一站的中间下车了,就在 13.1.11  下车。整理一下我们要经过的站,分别是: 12.0.3 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.11.3

gitlab离线升级版本 gitlab 升级_git

 好,现在我要把每一个版本都预先下载下来。从上面给的清华地址,把需要的版本下载一下。

gitlab离线升级版本 gitlab 升级_gitlab离线升级版本_02

全部下载下来

gitlab离线升级版本 gitlab 升级_gitlab离线升级版本_03

 开始干活儿。

备份一下 gitlab 当前最新数据,停止几个数据入口即可

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-ctl stop nginx

一个版本一个版本的开始升级,中途也不需要每个版本启动一下 gitlab 。如果你担心一下升级这么多有问题,你可以升级一个版本,gitlab-ctl restart 一下,然后登录查看是否正常,没问题继续往下走。

yum install -y gitlab-ce-12.0.12-ce.0.el7.x86_64.rpm

yum install -y gitlab-ce-12.1.17-ce.0.el7.x86_64.rpm

yum install -y gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm

yum install -y gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm

yum install -y gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm

yum install -y gitlab-ce-13.11.3-ce.0.el7.x86_64.rpm

最后一个版本升级完后,重启一下 gitlab

gitlab-ctl restart

登录查看版本,抽查几个项目有没有问题

gitlab离线升级版本 gitlab 升级_新版本_04

 验证能否拉代码

gitlab离线升级版本 gitlab 升级_新版本_05

 OK~ 升级没问题,很保险。