GitLab服务器迁移备份及注意事项
旧服务器备份
备份时需要保证两个gitlab的版本号一致,例如我的gitlab版本号都为8.8.5。
然后使用以下命令进行备份,注意gitlab需要保持正常运行的状态
sudo gitlab-rake gitlab:backup:create
备份结束后进入 “/var/opt/gitlab/backups” 目录下查看备份文件,备份文件名格式一般为 “ 时间戳_gitlab_backup.tar ”(例如:1675114514_gitlab_backup.tar)。
新服务器恢复
1、首先安装gitlab (我gitlab都是通过宝塔面板安装,这里略过)。
2、将旧服务器备份的文件上传至新服务器的 “/var/opt/gitlab/backups” 目录下,并且修改文件权限为 777
chmod 777 /var/opt/gitlab/backups/1675114514_gitlab_backup.tar
3、停止unicorn和sidekiq服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
4、
恢复备份数据到新服务器并覆盖
gitlab-rake gitlab:backup:restore BACKUP=1675114514
5、重启gitlab服务
gitlab-ctl start
到这里为止gitlab的迁移就算是完成了,试试看能不能正常使用,项目还都能否正常访问;条件允许的情况下旧服务器的gitlab也不用着急着删除,推荐保留7-15天以防不时之需。
以上内容参考自 这篇文章
GitLab访问项目报500错误的解决方法
经过测试迁移后所有的账号密码都没变,可正常登录,但是!当我gitlab点进其中一个项目的时候报了500的错误,如下图所示:
查看gitlab的日志,一般路径在(/var/log/gitlab/gitlab-rails/production.log)
sudo tail -f /var/log/gitlab/gitlab-rails/production.log
经查看出现了类似如下的错误日志:
Started GET "/commons/dinpay-commons-springmvc" for 127.0.0.1 at 2016-10-11 01:32:51 +0800
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"commons", "id"=>"dinpay-commons-springmvc"}
Completed 500 Internal Server Error in 137ms (ActiveRecord: 8.3ms)
OpenSSL::Cipher::CipherError (bad decrypt):
app/models/project.rb:456:in `import_url'
app/models/project.rb:486:in `external_import?'
app/models/project.rb:478:in `import?'
app/models/project.rb:494:in `import_in_progress?'
app/controllers/projects_controller.rb:93:in `show'
lib/gitlab/middleware/go.rb:16:in `call'
参考 这篇文章 的评论描述: 是gitlab数据迁移时的一个缺陷。
解决方法:
1、覆盖原来gitlab的 db_key_base 到新的gitlab
db_key_base , 也就是将旧服务器中的 /etc/gitlab/gitlab-secrets.json 复制到新服务器的 /etc/gitlab/ 目录下 。
2、执行命令:
(gitlab-ee属于企业版, gitlab-ce属于社区版,我装的是社区版)
EE版本执行命令
sudo gitlab-rails runner "Project.where(mirror: false).where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
CE版本执行命令
sudo gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
最后就结束了
文章参考内容:
https://blog.csdn.net/gcs_20210916/article/details/126729051
https://blog.csdn.net/weixin_56319285/article/details/126223006
https://www.oschina.net/question/2946511_2200445