GitLab - GitLab迁移遇到的问题

Posted 王万林 Ben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GitLab - GitLab迁移遇到的问题相关的知识,希望对你有一定的参考价值。

GitLab迁移遇到的问题

问题一

/var/opt/gitlab/backups 属主为root,群组为root,权限为600。将备份的压缩包拷贝到这个目录后,执行restore命令失败。

...
tar: repositories/icinfra/test_project: Cannot mkdir: No such file or directory
tar: repositories: Cannot mkdir: Permission denied
...

解决方法:chmod 777 /var/opt/gitlab/backups #要开权限给git账号读写,因为它要解压到这个目录。

问题二

执行restore时,报库restore失败。

restore步骤完毕后,打开网页并登陆,点击其中一个库,发现是500错误。

...
* icinfra/test_project ... Error: 14:failed to connect to all addresses
[Failed] restoring icinfra/test_project repository
...

查看问题

$ gitlab-ctl status
...
down: gitaly: 0s, normally up, want up; run: log: (pid 32518) 2931001s
...

查看pid为32518的进程:

$ ps -p 32518 -f 
UID  pid   ppid  C STIME    TTY TIME     CMD
root 32518 32464 0 Jul 23   ?   00:01:57 sylogd /var/log/gitlab/gitaly

查看gitaly日志

$ gitlab-ctl tail gitaly
...
{"error":"open /var/opt/gitlab/gitaly/gitaly.pid:permission denied", "level":"fatal", "msg":"find gitaly", "time":"2021-08-26T07:27:26Z", "wrapper":41609}
...

/var/opt/gitlab/gitaly/gitaly.pid没权限,查看

$ ls -Al /var/opt/gitlab/gitaly/
...
-rw------- 1 1000 1000 5 Jul 23 20:54 /var/opt/gitlab/gitaly/gitaly.pid
-rw------- 1 1000 1000 5 Jul 23 20:54 /var/opt/gitlab/gitaly/gitaly.socket
...

可以看到这两个文件是UID为1000的,但不是git账户。

方法:将这两个文件删除掉。

重启再次查看gitaly日志

$ gitlab-ctl tail gitaly
...
{"error":"storage path have to exist: /var/opt/gitlab/git-data/repositories", ...}
...

这个路径是在/etc/gitlab/gitlab.rb文件中定义的

git_data_dir({
    "default" => {
        "path" => "/var/opt/gitlab/git-data"
    }
})

方法:mkdir -m 777 /var/opt/gitlab/git-data/repositories

再次执行gitlab-rake gitlab:backup:restore BACKUP=161663911_2021_03_25_11.11.8就成功了。

参考资料

https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5070

以上是关于GitLab - GitLab迁移遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

gitlab迁移后遇到的问题

Gitlab---代码库备份的迁移与数据恢复

gitlab的安装和使用

gitlab升级gitlab Omnibus CE安装遇到的一些问题

gitlab仓库迁移

svn代码迁移到gitlab