SynologyのNAS(DS218play)上にGitサーバーを構築する

Synology

SynologyのNASであるDS218play上にGitサーバーを構築する手順について説明する。Gitサーバーのアクセスを許可するユーザーリストが空となってしまう問題の対応方法についても説明する。

SynologyのDSMにアクセスする

まずはSynologyのDSM(DiskStation Manager)にアクセスする。

Git用のボリュームを作成する

ここではGitのリモートリポジトリのデータを記憶するための共有フォルダ(ボリューム)を作成する。


「コントロールパネル」を開いて「共有フォルダ」を選択する。

「作成」を選択する。

ボリューム名を入力する。ボリューム名は例として「gitvolume」とする。
また、表示設定は非表示とするようにチェックを入れて「次へ」を選択する。

暗号化の設定はせず「次へ」を選択する。

設定内容を確認し、「適用」を選択する。

Git用のグループ/ユーザーは別途作成するのでここでは「OK」を選択する。

以上でこのようにGit用のボリュームを作成できた。

Git用のグループを作成する

「コントロールパネル」を開いて「グループ」を選択する。

「作成」を選択する。

グループ名を入力する。グループ名は例として「gitusers」とする。
「次へ」を選択する。

Git用に作成したボリュームの「gitvolume」の「読込み/書込み」にチェックを入れて「次へ」を選択する。

「次へ」を選択する。

「次へ」を選択する。

設定内容を確認して「適用」を選択する。

以上でグループを作成できた。

Git用のユーザーを作成する

「コントロールパネル」を開いて「ユーザー」を選択する。

既に作成済みのユーザーをgitusersグループに入れて権限を付与することもできるがここでは新規にユーザーを作成することにする。
「作成」を選択する。

ユーザー名を入力する。ユーザー名は例として「gituser」とする。
次へを選択する。

administratorsおよび今回作成したグループであるgitusersをにチェックを入れて「次へ」を選択する。
adminstratorsのメンバーに登録するのはNASへのSSHログインを行うためである。
また、gitusersのメンバーに登録することでGit用のボリュームに対するRW権限を付与している。

グループのメンバーとしたことでボリュームへのアクセス権限が付与されているので何もせずに「次へ」を選択する。

「次へ」を選択する。

「次へ」を選択する。

「次へ」を選択する。

設定内容を確認して「適用」を選択する。

以上でユーザーを作成できた。

Git Serverをインストールする

SSHサービスを有効にする

コントロールパネルを開いて「上級者モード」を選択する。

「端末とSNMP」を選択する。

「SSHサービスを有効化する。」にチェックを入れて「適用」を選択する。

Git Serverをインストールする

「パッケージセンター」を開いてgitで検索する。
Git Serverが見つかったらこれを選択する。

「インストール」を選択する。

「開く」を選択する。

今回追加したgituserの箇所にチェックを入れて「適用」を選択する。
このアクセスを許可するを許可するユーザーリストにユーザーが表示されない場合は後述する対応方法を実施するとよい。

以上でSynologyのNASであるDS218play上にGitサーバーを構築できた。

Git Serverのアクセスを許可するユーザーリストが空になってしまう問題と対応方法

Gitサーバーをインストールして開くを選択した際にアクセスを許可するユーザーリストが表示されるが、今回環境構築で使用したDS218playでは、このようにリストが空となってしまい設定を進められない問題が発生した。
以降で対応方法について説明する。

SSHでNASにログインする。
以下はRLoginを使用した際の設定例です。

以下のようにコマンドおよびパスワードを入力して設定ファイルを開く。

$ sudo vim /var/packages/Git/target/webapi/SYNO.Git.lib 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

Password: 

以下のように赤字の部分を削除して保存する。

修正前

{“SYNO.Git.lib”: {“allowUser”: [“admin.local”, “admin.domain”, “admin.ldap”], “appPriv”: “SYNO.SDS.GIT.Instance“, “authLevel”: 1, “lib”: “/var/packages/Git/target/webapi/SYNO.Git.so”, “maxVersion”: 1, “methods”: {“1”: [{“enum_user”: {“grantable”: true}}, {“apply”: {“grantable”: true}}]}, “minVersion”: 1, “priority”: 0}}

修正後

{“SYNO.Git.lib”: {“allowUser”: [“admin.local”, “admin.domain”, “admin.ldap”], “appPriv”: “”, “authLevel”: 1, “lib”: “/var/packages/Git/target/webapi/SYNO.Git.so”, “maxVersion”: 1, “methods”: {“1”: [{“enum_user”: {“grantable”: true}}, {“apply”: {“grantable”: true}}]}, “minVersion”: 1, “priority”: 0}}

修正が終了したらSSHを切断してもよい。
この状態で再度Git Serverを開くことでアクセスを許可するユーザーリストにユーザーが表示されるようになる。

コメント

タイトルとURLをコピーしました