繁体   English   中英

更改数据目录gitlab以将repos存储在其他位置

[英]change the data directory gitlab to store repos elsewhere

我的基本磁盘已满,我的gitlab安装,是否可以将存储库及其数据移动到其他文件夹,并确保即将推送的数据被发送到这些目录?

我试着停止gitlab并复制整个文件夹,但无济于事。 PS - 我不是一个IT人员,我只是在投资,看看我们怎么能摆脱这个问题; 请回答时请详细说明。

只是更新以防人们仍然参考这个。 从GitLab 文档

默认情况下,omnibus-gitlab将Git存储库数据存储在/var/opt/gitlab/git-data 存储库存储在子文件夹repositories 您可以通过/etc/gitlab/gitlab.rb添加到/etc/gitlab/gitlab.rb来更改git-data父目录的位置。

 git_data_dirs({"default" => "/mnt/nas/git-data"}) 

从GitLab 8.10开始,您还可以通过/etc/gitlab/gitlab.rb添加到/etc/gitlab/gitlab.rb来添加多个git数据目录。

 git_data_dirs({ "default" => "/var/opt/gitlab/git-data", "alternative" => "/mnt/nas/git-data" }) 

请注意,目标目录及其任何子路径都不能是符号链接。

运行sudo gitlab-ctl reconfigure以使更改生效。

如果您已经在/var/opt/gitlab/git-data有现有的Git存储库,则可以将它们移动到新位置,如下所示:

 # Prevent users from writing to the repositories while you move them. sudo gitlab-ctl stop # Note there is _no_ slash behind 'repositories', but there _is_ a # slash behind 'git-data'. sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/ # Fix permissions if necessary sudo gitlab-ctl reconfigure # Double-check directory layout in /mnt/nas/git-data. Expected output: # gitlab-satellites repositories sudo ls /mnt/nas/git-data/ # Done! Start GitLab and verify that you can browse through the repositories in # the web interface. sudo gitlab-ctl start 

对于版本> 7.14.1的新安装,更简单的解决方案:

打开gitlab.rb配置文件

sudo nano /etc/gitlab/gitlab.rb

搜索git_data_dir ,取消注释该行并在此处设置您的目录,例如

git_data_dir "/storage/data/gitlab/git-data"

保存文件并重新配置Gitlab:

sudo gitlab-ctl reconfigure

我只是将我的gitlab存储库文件夹从一个目录移动到另一个目录,可能对某人有用(在安静的时候快速完成或者事先停止gitlab!)

假设您有标准安装步骤

  • 以root身份为repos创建一个新文件夹,并将所有者更改为git用户
  • 将旧的repo文件夹内容复制(带存档,递归选项)到新的主页cp -ar SOURCE DESTINATION
  • 使用新的repo路径编辑gitlab配置文件 gitlab-shell配置文件
  • 重启gitlab sudo /etc/init.d/gitlab restart

如果您在运行上述步骤后cannot find repo在GitLab中cannot find repo错误。 运行此命令。

gitlab-rake cache:clear RAILS_ENV=production

如果您的路径正确,这应该可以解决问题。

就我而言,我需要将存储库从default存储移动到storage1
如果加载项目的常规设置,则显示项目编号,例如37

sudo gitlab-rails console
irb(main):012:0> p37 = Project.find(37)
irb(main):009:0> p37.repository_storage
=> "default"
irb(main):010:0> p37.repository_storage = 'storage1'
irb(main):011:0> p37.save
=> true
irb(main):012:0>  # <ctrl>+d to send EOF and exit

清除缓存也是一个好主意

gitlab-rake cache:clear RAILS_ENV=production

你需要附加这个小配置:

git_data_dirs({
    "default" => {
        "path" => "/srv/gitlab/git-data"
    }
})

rsync -av /var/opt/gitlab/git-data/* /srv/gitlab/git-data/.
chown -R git:git /srv/gitlab/git-data/
sudo gitlab-ctl reconfigure

完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM