文章时间:2019年10月25日 17:24:35
解决问题:将Gitlab从一个服务器上搬家到另一台服务器上面
Gitlab版本:8.8.5
说明:gitliab是基于宝塔一键安装的
注:此篇文章省略了gitliab的安装及配置等等,如有需要 请自行搜索
第一步 对应两个Gitlab版本
查看gitlab版本(二选一):
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
gitlab-rake gitlab:env:info
两台服务器的Gitlab版本必须是统一的,如有不统一,请先进行升级统一。
Gitlab版本升级教程:
第二步 备份数据 将Gitlab内的数据打包
gitlab-rake gitlab:backup:create RAILS_ENV=production
备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1571993772_gitlab_backup.tar
第三步 数据迁移 将备份文件拷贝至新环境
scp 服务器之间的拷贝命令:https://wiki.nooss.cn/archives/278.html
/#把对应版本的数据从旧服务器上拷贝到新服务器的gitlab备份目录里
scp /var/opt/gitlab/backups/1571993772_gitlab_backup.tar root@192.168.1.1:/var/opt/gitlab/backups/
第四步 恢复备份文件
/#新服务器执行恢复命令
chown -R git.git /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1571993772
注意:这里没有后面的_gitlab_backup.tar名字
一路yes,恢复是会先删除新服务器上所有gitlab数据的。
参考文献
Gitlab 升级备份迁移:https://www.jianshu.com/p/6361cba123a8
常见报错
gitlab 备份恢复部分项目httpcode 500报错
报错信息如下:
Started GET "/hcses/hcses-warehouse" for 112.243.76.43 at 2019-10-25 18:07:34 +0800
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"hcses", "id"=>"hcses-warehouse"}
Completed 500 Internal Server Error in 38ms (ActiveRecord: 5.9ms)
OpenSSL::Cipher::CipherError (bad decrypt):
app/models/project.rb:383:in `import_url'
app/models/project.rb:413:in `external_import?'
app/models/project.rb:405:in `import?'
app/models/project.rb:421:in `import_in_progress?'
app/controllers/projects_controller.rb:93:in `show'
lib/gitlab/middleware/go.rb:16:in `call'
解决方法:
执行下面命令既可恢复
gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"
网友教程参考:
gitlab 项目页500错误 OpenSSL bad decrypt:https://blog.csdn.net/u013114078/article/details/82995082
gitlab 备份恢复部分项目httpcode 500报错:https://blog.51cto.com/nginxs/1942028