gitlab迁移后遇到的问题

1、gitlab迁移后发现从之前的数据库导过来的用户数据编辑不了,报错404,经测试发现新建的用户可以编辑,故没办法只好把除管理员之外的用户数据都清了,重新创建一遍用户,但问题出现了,当我清理完除管理员之外的用户后管理员登录报500,具体报错信息是:

{
    "method":"POST",
    "path":"/users/sign_in",
    "format":"html",
    "controller":"SessionsController",
    "action":"create",
    "status":500,
    "error":"OpenSSL::Cipher::CipherError: ",
    "duration":196.04,
    "view":0,
    "db":53.45,
    "time":"2019-12-18T12:56:40.889Z",
    "params":[
        {
            "key":"utf8",
            "value":"✓"
        },
        {
            "key":"authenticity_token",
            "value":"[FILTERED]"
        },
        {
            "key":"user",
            "value":{
                "login":"[email protected]",
                "password":"[FILTERED]",
                "remember_me":"0"
            }
        }
    ],
    "remote_ip":"192.168.1.130",
    "user_id":1,
    "username":"root",
    "ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
    "queue_duration":2.69,
    "correlation_id":"p1jrfwOfAF9"
}

是的,没错报OpenSSL::Cipher::CipherError:这个错,网上找了下说是gitlab数据迁移 时的一个缺陷,解决办法如下:

1、覆盖原来gitlab的 db_key_base 到新的gitlab db_key_base 位置在 /etc/gitlab/gitlab-secrets.json

2、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 }"

但是我在执行完第二步的时候依旧没有生效,后面发现有人提到secrets.yml【】文件也要更新,故我查找了下这个文件,发现里面确实也有db_key_base参数的值没有改成和备份前一样的,所以死马当活马医,把新版的gitlab的这个值覆盖成原来的gitlab db_key_base,然后重启gitlab后就可以正常登录了。

 注:当时发现有三个同名的文件,但是只要改第一个文件就可以了(第一个应该和第三个是软链接的关系,改完第一个第三个自动改了,第二个文件里没有这个参数)

猜你喜欢

转载自www.cnblogs.com/liangyou666/p/12064470.html