当前位置 博文首页 > Stefan的博客:gitlab 备份迁移后,新gitlab部分页面报500错误

    Stefan的博客:gitlab 备份迁移后,新gitlab部分页面报500错误

    作者:[db:作者] 时间:2021-07-21 19:12

    gitlab 安装以及卸载
    gitlab 数据迁移全命令
    gitlab的webhook实现Jenkins自动部署详细说明

    在将旧gitlab服务器上的数据备份迁移到新服务器后,有部分页面访问包500错误。
    经验证新服务器在恢复备份数据前,页面均访问正常,问题出现在备份恢复上。
    这是由于db_key_base问题导致的。
    gitlab默认的备份机制,是不会备份gitlab.rb和gitlab-secrets.json文件的。
    gitlab.rb配置了gitlab的域名、邮件发送信息、白名单等相关信息,gitlab-secrets.json文件存储了gitlab的db secret信息。
    db_key_base问题正与gitlab-secrets.json文件有关。

    解决办法:

    方法一、在旧gitlab配置文件未删除的情况下,拷贝gitlab-secrets.json文件到新服务器替换,重启gitlab。

    /etc/gitlab/gitlab-secrets.json
    

    重新加载配置文件

    gitlab-ctl reconfigure
    

    重启gitlab服务

    gitlab-ctl restart
    

    方法二、若旧gitlab配置已删除,可执行以下两组命令重置相关CI的所有密钥和token。

    #  gitlab-rails console
    

    在这里插入图片描述

    irb(main):001:0> Ci::Runner.all.update_all(token_encrypted: nil)
    

    重启gitlab服务

    # gitlab-rails dbconsole
    

    在这里插入图片描述

    gitlabhq_production=>  UPDATE projects SET runners_token = null, runners_token_encrypted = null;
    
    gitlabhq_production=>  UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
    
    gitlabhq_production=>  UPDATE application_settings SET runners_registration_token_encrypted = null;
    

    执行完命令后,\q 退出
    重启gitlab服务

    cs