git鯖の構築 -2-
こんどは、前よりHDDもRAMも少ない素のMac mini環境。
UbuntuServer 11.04は入った。
インストーラーで入れたのは、sshdだけ。
gitをパッケージインストールした。
httpで鯖を公開してしまうのは、いろいろとリスクもあるので、gitプロトコルのみの許可にする。
Web公開はローカルだけにしておく。
gitのリポジトリを作成しておく。
kinneko@gitsv2:~$ sudo mkdir -p /var/git/EVT/test.git kinneko@gitsv2:~$ cd /var/git/EVT/test.git kinneko@gitsv2:/var/git/EVT/test.git$ sudo git --bare init --shared Initialized empty shared Git repository in /var/git/EVT/test.git/ kinneko@gitsv2:/var/git/EVT/test.git$ sudo groupadd developer kinneko@gitsv2:/var/git/EVT/test.git$ sudo usermod -G developer kinneko kinneko@gitsv2:/var/git/EVT/test.git$ sudo chown root:developer -R ./
gitサーバーを動かす。
Ubuntuだと、起動スクリプト類がgit-daemon-runという専用のパッケージになっているそうな。
依存するrunitのインストールで、
grep: /etc/inittab: No such file or directory
と出ているのが気になるところ。
gitlogとgitdaemonというユーザーが自動追加された。
デフォルトの設定ファイルでは、gitディレクトリが"/nonexistent"になっているようで、起動時にエラーを出している。
しかし、起動はしている。
1905 ? Ss 0:00 runsvdir -P /etc/service log: .................................................. 1945 ? Ss 0:00 runsv git-daemon 1946 ? S 0:00 svlogd -tt /var/log/git-daemon 1947 ? S 0:00 /usr/lib/git-core/git-daemon --verbose --base-path=/var/cache /var/cache/git
設定を編集しておく。
kinneko@gitsv2:~$ sudo vi /etc/sv/git-daemon/run #!/bin/sh exec 2>&1 echo 'git-daemon starting.' exec chpst -ugitdaemon \ "$(git --exec-path)"/git-daemon --verbose --base-path=/var/cache /var/cache/git
nonexistentは判定で存在しなかったから出しただけなのかな。
"$(git --exec-path)"/git-daemon --verbose --base-path=/var/git --export-all --enable=receive-pack
現在のサービス状態を見る。
kinneko@gitsv2:/var/git/EVT/test.git$ sudo sv stat git-daemon run: git-daemon: (pid 1947) 2141s; run: log: (pid 1946) 2141s
一応動いているみたい。
サービスを停止・起動する。
kinneko@gitsv2:/var/git/EVT/test.git$ sudo sv stop git-daemon ok: down: git-daemon: 0s, normally up kinneko@gitsv2:/var/git/EVT/test.git$ sudo sv start git-daemon timeout: down: git-daemon: 1s, normally up, want up
なんか、ps見ても、止まっている気がしないわ...
logのほうは別に停止起動をする必要があるみたい。
kinneko@gitsv2:/var/git/EVT/test.git$ sudo sv stop git-daemon/log ok: down: git-daemon/log: 0s, normally up kinneko@gitsv2:/var/git/EVT/test.git$ sudo sv start git-daemon/log ok: run: git-daemon/log: (pid 2682) 1s kinneko@gitsv2:/var/git/EVT/test.git$ sudo sv stat git-daemon/log run: git-daemon/log: (pid 2682) 16s
こちらは、svlogdのプロセスがなくなるので、明確に止まるのが確認できる。
簡単すぎて不安になるくらいだな。
でも、普通のsysvスタイルになってない起動システムは、嫌な感じがするのは年寄りですか、そーですか。