Gitlab服务迁移

由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本备份的数据,所以新旧服务器Gitlab版本必须一致。

查看GitLab版本:

1
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

新机器安装Gitlab服务,在此不再赘述,可参考此文章

备份旧服务器数据:

1
gitlab-rake gitlab:backup:create

默认将会在 /var/opt/gitlab/backups/ 目录下生成备份文件。

使用scp命令从旧服务器复制文件到新服务器:

1
scp /nfsdrive/backup/gitlab/1665250409_2022_10_09_12.10.14_gitlab_backup.tar root@172.31.0.123:/var/opt/gitlab/backups/

新服务器上将备份文件权限修改为777,避免出现权限不够的问题:

1
2
cd /var/opt/gitlab/backups
chmod 777 1665250409_2022_10_09_12.10.14_gitlab_backup.tar

新服务器上停止数据连接服务:

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

新服务器上恢复备份文件至Gitlab:

1
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

例如:备份文件名为1665250409_2022_10_09_12.10.14_gitlab_backup.tar,则编号为1665250409_2022_10_09_12.10.14。
在提示中敲入“yes”继续。

完成后会看到提示:

/etc/gitlab/gitlab-secrets.json和/etc/gitlab/gitlab.rb文件包含敏感数据,需要手动恢复这些文件。
如果不覆盖这两个文件会造成CI/CD配置页报500错误:

需要旧服务器上把这两个文件拷贝至新服务器上覆盖:

1
2
scp /etc/gitlab/gitlab-secrets.json root@172.31.0.123:/etc/gitlab/gitlab-secrets.json
scp /etc/gitlab/gitlab.rb root@172.31.0.123:/etc/gitlab/gitlab.rb

重新配置并重启:

1
gitlab-ctl reconfigure && gitlab-ctl restart

检测恢复数据情况:

1
gitlab-rake gitlab:check SANITIZE=true

PS:如果网站配置了证书,需把证书放到对应路径:

至此,Gitlab服务迁移完成。

Thank you for your accept. mua!
-------------本文结束感谢您的阅读-------------