【Ubuntu 16.04 LTS Server】git-daemonを使う

スポンサーリンク

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を使う方針に変更した。

参考

  1. Git – プロトコル

コメント

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