公司的Gitlab服务器过于老旧,准备迁移到新机器上去,而且使用的还是9.5.4版本,许多新功能不支持,因此同时对其进行升级。
数据迁移
总体流程分为三个部分:
- 在新机器上安装相同版本的gitlab。
- 将备份数据拷贝到对应的目录下
- 导入数据
查看Gitlab版本
# 方法一:
[root@gitlab ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
9.5.4
# 方法二:
[root@gitlab ~]# gitlab-rake gitlab:env:info
System information
System:
Current User: git
Using RVM: no
Ruby Version: 2.3.3p222
Gem Version: 2.6.6
Bundler Version:1.13.7
Rake Version: 12.0.0
Redis Version: 3.2.5
Git Version: 2.13.5
Sidekiq Version:5.0.4
Go Version: unknown
GitLab information
Version: 9.5.4
Revision: fbffc27
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
URL: http://192.168.0.149
HTTP Clone URL: http://192.168.0.149/some-group/some-project.git
SSH Clone URL: git@192.168.0.149:some-group/some-project.git
Using LDAP: no
Using Omniauth: no
GitLab Shell
Version: 5.8.0
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git
新机器上安装Gitlab
关于安装和备份具体内容可以参考我之前的一篇随笔Gitlab安装配置及数据备份
可以直接下载好对应的rpm或者deb包,直接安装即可,这里因为是迁移,所以安装完成后不需要设置,配置文件可以直接从旧机器上拷贝过来。
这边安装好先不要急着初始化配置,等后面配置文件拷贝过来后在初始化。
备份数据
备份数据分为两个部分,一部分是数据备份,另一部分就是配置文件的备份。
拷贝数据
备份完成后将文件拷贝到新服务器上去。数据备份.tar文件,配置文件gitlab.rb和gitlab-secrets.json要放到各自对应的目录下。
数据备份文件默认是在/var/opt/gitlab/backups/目录,配置文件位于/etc/gitlab/
目录下。
导入数据
# 初始化配置
[root@gitlab ~]# gitlab-ctl reconfigure
# 数据恢复
# 这一步会清空gitlab中原有的表和数据,需要输入两次yes确认
[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1615393140_2021_03_11_9.5.4
# 恢复完成后启动Gitlab
[root@ubuntu1804:~]# gitlab-ctl start
版本升级
gitlab允许小版本直接升级,而大版本需要阶段升级。
此次升级路线为:
9.5.4
-> 9.5.10
-> 10.8.7
-> 11.11.8
-> 12.0.3
-> 12.10.9
升级前先停止gitlab数据连接服务:
[root@gitlab src]# gitlab-ctl stop unicorn
[root@gitlab src]# gitlab-ctl stop sidekiq
升级到9.5.10
版本(9版本中最后一个版本):
# 开始升级
[root@gitlab src]# yum -y install ./gitlab-ce-9.5.10-ce.0.el7.x86_64.rpm
# 升级后再次启动下gitlab,查看下是否可以正常使用
[root@gitlab src]# gitlab-ctl start sidekiq
ok: run: sidekiq: (pid 28288) 0s
[root@gitlab src]# gitlab-ctl start unicorn
ok: run: unicorn: (pid 28315) 0s
# 查看版本号
[root@gitlab src]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
9.5.10
没有问题后再继续升级10.8.7
:
[root@gitlab src]# gitlab-ctl stop unicorn
[root@gitlab src]# gitlab-ctl stop sidekiq
[root@gitlab src]# yum -y install ./gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm
[root@gitlab src]# gitlab-ctl start sidekiq
[root@gitlab src]# gitlab-ctl start unicorn
[root@gitlab src]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.8.7
后续升级重复上述操作即可。
中间或许有些小坑,可以google一下,都不是什么大问题。