因为要和 JIRA 集成,发现现有的 GitLab 版本太老,不支持。所以要升级。
特别注意,GitLab 不支持直接升级,必须大版本依次升级,如果升级失败,请注意看提示。
版本号见下表:
大版本号 | 更新状态 | 目前最高小版本 |
---|---|---|
8 | 完结 | 8.17.8 |
9 | 完结 | 9.5.9 |
10 | 完结 | 10.8.7 |
11 | 完结 | 11.11.8 |
12 | 进行中 | 12.10.6 |
准备工作
- 做好备份
gitlab-rake gitlab:backup:create
- 添加源,新建/修改次文件
/etc/yum.repos.d/gitlab-ce.repo
,并在文件中添加以下内容:
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enable=1
gpgkey=https://packages.gitlab.com/gpg.key
开始升级
因为我的 GitLab 版本是 8.8.5
,所以安装上述版本表格,先升级至 8.17.5
,再升级到 9.5.9
,依次类推。要注意,11.11.8
的时候,必须先升级到 12.0.x
,才可以继续升级。
附上我的升级之路
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
[root@localhost ~]# yum install gitlab-ce-8.17.8
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
[root@localhost ~]# yum install gitlab-ce-9.5.9
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
[root@localhost ~]# yum install gitlab-ce-10.8.7
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
[root@localhost ~]# yum install gitlab-ce-11.11.8
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
[root@localhost ~]# yum install gitlab-ce-12.0.1
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
[root@localhost ~]# yum install gitlab-ce-12.10.6
[root@localhost ~]# gitlab-ctl reconfigure
[root@localhost ~]# gitlab-ctl restart
[root@localhost ~]# sudo gitlab-rake gitlab:backup:create
另外注意,当你 reconfigure 完之后,如果有错误,请按照提示的命令来修复。
备份
# 12.1 以上版本使用以下命令
gitlab-backup create
# 12.1 以下版本使用以下命令
gitlab-rake gitlab:backup:create
这里还要说一下,GitLab 的备份文件不支持跨版本恢复,就是说 8.8.5
的备份,不可以在 12.10.6
上恢复。
恢复
如何恢复备份,请参阅另一篇文章GitLab 迁移及问题汇总
# 12.1 以上版本使用以下命令
gitlab-backup restore BACKUP=xxxxxxxx
# 12.1 以下版本使用以下命令
gitlab-rake gitlab:backup:restore
如果是在其他服务器恢复备份,一定要记得将 gitlab.rb 和 gitlab-secrets.json 手动复制到相应路径下。
gitlab.rb路径:/etc/gitlab/gitlab.rb
gitlab-secrets.json路径:/etc/gitlab/gitlab-secrets.json
记得复制完这两个文件,还是要 reconfigure 和 restart。
另外,如果发现保存设置的时候出现 500
错误。请在 gitlab-rails console
控制台中执行以下命令:
ApplicationSetting.current.reset_runners_registration_token!