Loading

Gitlab数据迁移和版本升级

公司的Gitlab服务器过于老旧,准备迁移到新机器上去,而且使用的还是9.5.4版本,许多新功能不支持,因此同时对其进行升级。

数据迁移

总体流程分为三个部分:

  1. 在新机器上安装相同版本的gitlab。
  2. 将备份数据拷贝到对应的目录下
  3. 导入数据

查看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一下,都不是什么大问题。

以上

posted @ 2021-03-12 15:34  吃一块云  阅读(673)  评论(0编辑  收藏  举报