1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【実験】GitLabのデータをNFSで管理する

Posted at

前回の続きです。
今回は以前構築したNFSサーバーにGitLabのリポジトリデータ(プロジェクトやグループ等のデータ)を管理出来るように設定を行います。
GitLabのリポジトリデータは/var/opt/gitlab/git-dataに格納されています。
やる事としてはこのgit-dataの中身をNFSのマウント先にコピーし、GitLabがこのNFSのマウント先を参照するように設定変更を行います。

GitLabサーバーにNFSディレクトリをマウント

NFSサーバーの設定

まずはGitLabのリポジトリデータを格納するNFSサーバー側で設定を行います。
/home配下等にGitLabのデータを格納するディレクトリを作成した後、/etc/exportsファイルに以下のような設定を追加します。

/etc/exports
<GitLabデータを格納するディレクトリのパス> <GitLabサーバーのIPアドレス>(<オプション>)
オプション一例
rw:クライアントに書き込みを許可
async:非同期書き込みを有効にする
no_root_squash:クライアント側のroot権限にて実行可能とする
:
/home/git-nfs 192.168.0.3(rw,async,no_root_squash)

設定を追加したらNFSサービスを再起動します。

sudo systemctl status nfs-server
sudo systemctl restart nfs-server
sudo systemctl status nfs-server

以上でNFSサーバー側の設定は完了です。

GitLabサーバーにマウント

続いてGitLabサーバー側にてNFSサーバーで設定したディレクトリをマウントします。
/mntディレクトリ配下等にマウント先のディレクトリを作成し、以下コマンドでマウントを実施します。

sudo mount -t nfs -o rw <NFSサーバーのIPアドレス>:<NFSサーバーのGitLabデータ格納先パス> <マウントディレクトリへのパス>
例:
sudo mount -t nfs -o rw 192.168.0.2:/home/git-nfs /mnt/git-data-nfs

エラーなくマウントが実行できたら、次はGitLabのリポジトリデータをコピーします。
コピーは以下のコマンドで実行します。

sudo rsync -av /var/opt/gitlab/gitlab-data/repositories <マウントディレクトリへのパス>
例:
sudo rsync -av /var/opt/gitlab/gitlab-data/repositories /mnt/git-data-nfs/

上記コマンド実行後、NFSサーバーのGitLabデータ格納先の中にrepositoriesディレクトリが入っていれば成功です。
NFSサーバー側で確認がとれたら、/etc/fstabファイルにマウントの設定を追加します。
mountコマンドだけだと次回サーバーを再起動した際に自動でNFSのマウントはされませんので、再度コマンドを実行し直す必要があります。
そのため、次回再起動時にも自動でマウントする為にfstabファイルに設定を追加します。

/etc/fstab
<NFSサーバーのIPアドレス>:<NFSサーバーのGitLabデータ格納先パス> <マウントディレクトリへのパス> nfs <オプション> 0 0
:
192.168.0.2:/home/git-nfs /mnt/git-data-nfs nfs defaults 0 0

これで次回サーバーを起動した際に自動でマウントされるようになります。

リポジトリデータの格納先の設定変更

リポジトリデータの移動が完了しましたので、次はこのリモートディレクトリをGitLabが参照出来るように設定します。
事前に以下のコマンドでGitLabサービスを停止します。

gitlab-ctl status
gitlab-ctl stop
gitlab-ctl status

続いて/etc/gitlab/gitlab.rbファイルにリポジトリデータの参照先を変更する設定を追加します。
viエディタ等でgitlab.rbファイルを開き、/git_data_dirsという単語で2回検索します。
該当の設定の上に同じワードの異なる設定があるので2回検索する必要があります。
該当の設定はコメントアウトされているので、設定の左側に記載されている#を外し、以下の様な設定に変更します。

git_data_dirs({ "default" => { "path" => "<マウントディレクトリへのパス>" } })

設定後、gitlab-ctl reconfigureコマンドでリコンフィグを実行します。
エラーなく完了しましたら以下のコマンドでGitLabサービスを起動します。

gitlab-ctl status
gitlab-ctl start
gitlab-ctl status

全てのサービスがrunになっていれば正常に起動しています。
以上でGitLabリポジトリデータのNFSサーバー管理が実現できました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?