不能把gitlab服务器从备份恢复

时间:2016-08-27 05:51:38

标签: gitlab

我目前在CentOS 6.5上运行GitLab Omnibus v7.1.0(称之为gitlab-a)。我使用CentOS 6.8(gitlab-b,最终将升级到最新的GitLab 8版本)构建了一个新的GitLab服务器,通过RPM软件包安装了GitLab Omnibus v7.1.0(gitlab-7.1.0_omnibus-1.el6.x86_64.rpm ),使用以下命令在原始服务器(gitlab-a)上运行备份:

sudo gitlab-rake gitlab:backup:create

我安全地将生成的备份tar文件复制到“新”服务器(在本例中为gitlab-b)并将其恢复:

bundle exec rake gitlab:backup:restore RAILS_ENV=production

我跑了:

sudo gitlab-rake gitlab:check SANITIZE=true

它抱怨权限和丢失的卫星。我按照给出的指示:

chmod -R ug+rwX,o-rwx /var/opt/gitlab/git-data/repositories
chmod -R ug-s /var/opt/gitlab/git-data/repositories
find /var/opt/gitlab/git-data/repositories -type d -print0 | sudo xargs -0 chmod g+s
sudo -u git -H bundle exec rake gitlab:satellites:create RAILS_ENV=production

我测试了这个新安装(gitlab-b),能够git clonegit pull没有任何问题。但是,当我创建一个分支(称为test-123)时,在test-123分支中进行更改,然后尝试git push test-123分支(git push origin test-123),我收到以下错误:

Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 331 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: GitLab: You are not allowed to access test-123!
remote: error: hook declined to update refs/heads/test-123
To git@gitlab.gitlab-b.com:project/repo.git
 ! [remote rejected] test-123 -> test-123 (hook declined)
error: failed to push some refs to 'git@gitlab.gitlab-b.com:project/repo.git'

我还注意到在新的gitlab-b服务器上,/var/opt/gitlab/git-data/repositories/project/repo.git/refs/heads目录为空。我认为这是问题原因的一部分。我不知道该如何解决。

我在过去两天的大部分时间里搜索过,发现了许多相关的问题和解决方案;遗憾的是,我无法找到解决此问题的解决方案。任何想法或任何让我朝着正确的方向前进的人都将不胜感激!提前谢谢您的时间。如果需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

如果有人碰到这个并且似乎已经耗尽了所有其他好的建议,请检查/ opt / gitlab下是否有符号链接链接到另一个目录。在我的例子中,我将默认的git_data_dir / opt / gitlab / git-data符号链接到/ home / gitlab / opt / gitlab / git-data,因为/ home分区的磁盘空间最大。

处理此问题的正确方法是不使用符号链接,而是通过编辑/etc/gitlab/gitlab.rb,添加以下行:

git_data_dir "/home/gitlab/opt/gitlab/git-data"

并运行gitlab重新配置:

sudo gitlab-ctl reconfigure

参考文献: Wikipedia:

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/configuration.md#storing-git-data-in-an-alternative-directory

感谢那些花时间提供帮助,评论和/或阅读的人。非常感谢您的时间!

祝你好运!