gitプロトコル(git://)で通信できるサービスを登録する。gitプロトコルからのリポジトリアクセスは、読み出し専用とする。
git-daemon をインストール
# apt install git-daemon-sysvinit
/etc/default/git-daemon の設定を変更(基本はそのままでOK)
# nano /etc/default/git-daemon
----------
GIT_DAEMON_ENABLE=false → true に変更
----------
設定内容の確認
# cat /etc/default/git-daemon
--------------------
GIT_DAEMON_ENABLE=true
GIT_DAEMON_USER=gitdaemon
GIT_DAEMON_BASE_PATH=/var/lib
GIT_DAEMON_DIRECTORY=/var/lib/git
# Additional options that are passed to the Daemon.
GIT_DAEMON_OPTIONS=""
--------------------
リポジトリへのシンボリックリンクを張る
git-daemonのデフォルトのリポジトリ所在は、/var/lib/git
となっている。
設定ファイルを変更して対応してもよいが、シンボルリンクを張って、デフォルトの設定のまま使うようにする。
GIT_DAEMON_DIRECTORY から、シンボリックリンクを /home/git/repositories
に張る。
又、GIT_DAEMON_BASE_PATHは、デフォルト初期値の「/var/lib」のままとし、取出し時のパスに”/git”を付加する事にする。
# cd /var/lib
# rmdir git
# ln -s /home/git/repositories ./git
# ls -al git
----------
lrwxrwxrwx 1 root root 22 5月 6 13:08 git -> /home/git/repositories
----------
サービスの再起動
# servise git-daemon restart (←サービスの再起動)
起動サービスプロセスの確認
# ps -ax | grep git-daemon
-------------------
1326 ? Ss 0:00 /usr/lib/git-core/git-daemon --user=gitdaemon --pid-file=/var/run/git-daemon.pid --detach --reuseaddr --verbose --base-path=/var/lib /var/lib/git
-------------------
# netstat -antu
# nmap localhost
-------------------
9418/tcp open git
-------------------
- デーモンの起動引数も確認できる。
- デーモンのユーザは「gitdaemon」となってる。
gitグループに、gitdaemonユーザを追加しておく
# usermod -a -G git gitdaemon
gitoliteで、gitdaemonからの参照を許可しpushする
$ cd gitolite-admin/conf
$ nano gitolite.conf
----------
repo testing
R = daemon
----------
$ git add gitolite.conf
$ commit
$ git push
- 「daemon」は、.gitolite.rc で定義してある
- 「deamon」を指定する事で、”git-daemon-export-ok”のファイルが作成される。
- 又、個別リポジトリに”git-daemon-export-ok”ファイルを作成してpushしてもよい。
クローンを作成して確認する
$ git clone git://<サーバIP>/git/testing.git ./testing
- 後ろの.gitと、クーン先の ./testing は省略できる
補足
- 当初は、gitプロトコルでも、clone/pushで運用しようとしたが、「Git for Windows」からpushできない(不思議とmacやmsys2からはok)現象があり。gitプロトコルは諦めて読み出し専用とし、httpを使う方針に変更した。
コメント