Gitlab库已损坏前端显示500错误解决方法

Gitlab创建备份

1
#gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期。

Gitlab恢复

1
2
3
4
5
6
7
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1393513186
# 启动Gitlab
sudo gitlab-ctl start

Gitlab迁移

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话)。但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的8.5版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为8.5再进行备份。

自动备份

通过crontab使用备份命令实现自动备份:

1
2
sudo su -
crontab -e

例如加入以下, 实现每天凌晨2点进行一次自动备份:

1
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

恢复过程中遇到一个错误:

1
2
3
4
5
6
7
8
9
10
11
12
Started GET "/EagleEye/BMH.EagleEye" for 127.0.0.1 at 2016-10-25 10:54:32 +0800
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"EagleEye", "id"=>"BMH.EagleEye"}
Completed 500 Internal Server Error in 215ms (ActiveRecord: 19.5ms)

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‘

系统是centos 6.2的 ,gitlab是8.8.5迁移到另外一台服务器上的,其它页面都可以正常显示,但是一点击项目就会显示500,。查看/var/log/gitlab/gitlab-rails/production.log日志,发现上述错误 。
通过搜索知道,这是gitlab数据迁移时的一个缺陷。解决方法:

  1. 覆盖原来gitlab的 db_key_base 到新的gitlab
    db_key_base 位置在 /etc/gitlab/gitlab-secrets.json
  2. EE版本执行
    1
    sudo gitlab-rails runner "Project.where(mirror: false).where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"

CE版本执行

1
sudo gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"

重启gitlab,发现500错误不见,项目能访问到。

本文标题:Gitlab库已损坏前端显示500错误解决方法

文章作者:Yokiy

发布时间:2018年01月17日 - 12:01

最后更新:2018年01月17日 - 15:01

原始链接:http://yokiy.com/2018/01/17/Gitlab库已损坏前端显示500错误解决方法/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。