Gitlab升级迁移小记

目录
  1. 登录新服务器配置SSH,方便以后的登录。
  2. 在新服务器上安装Gitlab
  3. 升级原服务器Gitlab版本。
  4. 迁移还原

由于历史操作原因,Gitlab服务器与Jenkins服务器位于不同大区的ECS服务器中,拉取代码较慢,新服务器采购时正好做个迁移,将2个服务器配置在一个内网中。

原服务器系统CentOS,Gitlab版本 10.2.4,新服务器系统Ubuntu,Gitlab版本。

登录新服务器配置SSH,方便以后的登录。

可参考 SSH登录配置

在新服务器上安装Gitlab

参考 官网命令进行 新服务器Gitlab安装 https://about.gitlab.com/installation/#ubuntu?version=ce

1
2
3
4
5
6
7
8
9
apt update
sudo apt-get install -y curl openssh-server ca-certificates
sudo apt-get install -y postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://xxx.xxxx.com" apt-get install gitlab-ce

升级原服务器Gitlab版本。

由于Gitlab迁移要求 版本号相同,因此对于原服务器Gitlab需要做个升级。

下载新包

https://packages.gitlab.com/gitlab/gitlab-ce
https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm

关闭部分gitlab服务

1
2
3
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx

Gitlab备份

1
gitlab-rake gitlab:backup:create

升级

1
2
3
4
5
6
7
8
rpm -Uvh gitlab-ce-11.0.3-ce.0.el7.x86_64.rpm
# 参考
# Ubuntu/Debian系统:
# sudo dpkg -i gitlab_x.x.x-omnibus.xxx.deb
# CentOS系统:
# sudo rpm -Uvh gitlab-x.x.x_xxx.rpm

gitlab跨版本升级错误

提示版本跨度过大无法升级,需按路径依次升级。

原Gitlab版本10.x,找了10版本下最大版本10.8.4,按照上面的升级流程重新走了一遍。

升级10成功。

Gitlab升级10.8.4成功

重新配置gitlab

1
gitlab-ctl reconfigure

重启gitlab

1
gitlab-ctl restart

启动以后500错误。

10.8.4 500错误

查看 日志 /var/log/gitlab/gitlab-rails/production.log

500日志错误

这个错误没有找到好的解决办法。

1
2
3
4
5
6
7
8
# 尝试直接修改表结构
$ gitlab-rails dbconsole
$ alter table issues add column deleted_at timestamp;
# 后续错误依次修改
$ alter table merge_requests add column deleted_at timestamp;
$ alter table namespaces add column deleted_at timestamp;

然后一般页面500错误消失,但退出登录会出现500错误,简直奔溃。

迁移还原

原服务器弄的不完美,直接将升完级的后再备份的文件转移至新服务器备份文件夹下,Gitlab备份文件夹目录/var/opt/gitlab/backups/,还原成功。

1
2
3
4
5
6
7
8
# 备份文件名 1531211711_2018_07_10_11.0.3_gitlab_backup.tar
$ cd /var/opt/gitlab/backups/
# 还原时出现 这个错误 tar: Error is not recoverable: exiting now,权限不足
$ chown git 1531211711_2018_07_10_11.0.3_gitlab_backup.tar
# 还原,还原成功。
$ sudo gitlab-rake gitlab:backup:restore BACKUP=1531211711_2018_07_10_11.0.3

建议谨慎升级,做好备份,实在不行还原到原版本,迁移的话也可以到同版本升级。

本次迁移的下下策是重新创建仓库、用户。因为用户及仓库数量也就十来个,不算多,也算有恃无恐。