web-dev-qa-db-ja.com

データディレクトリgitlabを変更してリポジトリを別の場所に保存する

ベーシックディスクはgitlabインストール用にいっぱいです。リポジトリとそのデータを他のフォルダーに移動し、今後のプッシュのデータがそれらのディレクトリに送信されることを確認することは可能ですか?

Gitlabを停止してフォルダー全体をコピーしようとしましたが、役に立ちませんでした。 PS-私はIT担当者ではありません。この問題からどのように抜け出すことができるのかを確認するためにピッチングしています。答える際には冗長になってください。

55

人々がまだこれを参照している場合に備えて更新してください。 GitLabから ドキュメント

デフォルトでは、omnibus-gitlabはGitリポジトリデータを/var/opt/gitlab/git-dataの下に保存します。リポジトリはサブフォルダーrepositoriesに保存されます。次の行をgit-dataに追加することにより、/etc/gitlab/gitlab.rb親ディレクトリの場所を変更できます。

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

GitLab 8.10以降では、代わりに次の行を/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
115
Gus E

より簡単なソリューションバージョン> 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
10
Kovah

Gitlabリポジトリフォルダーをあるディレクトリから別のディレクトリに移動しただけで、誰かに役立つかもしれません(静かな時間にすばやく実行するか、事前にgitlabを停止してください!)

標準インストールがあると仮定すると、手順は次のとおりです。

  • リポジトリ用の新しいフォルダーをルートとして作成し、所有者をgitユーザーに変更します
  • 古いリポジトリフォルダーの内容を新しいホームcp -ar SOURCE DESTINATIONに(アーカイブ、再帰オプションを使用して)コピーします
  • Gitlab構成ファイルを編集しますおよび gitlab-Shell構成ファイルと新しいリポジトリパス
  • Gitlabを再起動Sudo /etc/init.d/gitlab restart
5
alastairtree

上記の手順を実行した後、GitLabでcannot find repoエラーが表示される場合。このコマンドを実行します。

gitlab-rake cache:clear Rails_ENV=production

パスが正しい場合、これにより問題が修正されます。

3
Rusty

私の場合、リポジトリを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

0
ThorSummoner

以下の小さな設定を追加する必要があります。

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

できた.

0
ThinhLP