Gitのレポジトリサーバをxinetdで立てる
昨日に引き続き、git-daemonです。
マニュアルを見ているとgit daemonはinetdで起動できるみたいなので、それならxinetdで立ててみるかなという気持ちになってきました。
git-daemon(1) Manual Page
http://www.kernel.org/pub/software/scm/git/docs/everyday.html
xinetdをインストール
うちの環境はCentOS5.2です。デフォルトでxinetdがインストールされていなかったので、まずインストールするところからスタート。
- # rpm -q xinetd
- パッケージ xinetd はインストールされていません。
- # yum install xinetd
- Dependencies Resolved
- =============================================================================
- Package Arch Version Repository Size
- =============================================================================
- Installing:
- xinetd x86_64 2:2.3.14-10.el5 base 125 k
- Transaction Summary
- =============================================================================
- Install 1 Package(s)
- Update 0 Package(s)
- Remove 0 Package(s)
- Total download size: 125 k
- Is this ok [y/N]: y
これでxintedはインストールされましたね。
続いて、xintedの起動と、次回から自動起動するようにchkconfigをonにしておく。
- # chkconfig xinetd on
- # /etc/init.d/xinetd start
- xinetd を起動中: [ OK ]
xinetdが起動しました。
xinetdにgitを登録
さてgit-daemonがxinetd経由で、gitのポートにリクエストがあった時、適宜起動してくれるよう設定します。
- # cat /etc/services | grep git
- ....
- git 9418/tcp # git pack transfer service
- git 9418/udp # git pack transfer service
gitがインストールされている場合、/etc/servicesにはすでに登録されていると思います。
続いて/etc/xinetd.d/にgit用の設定ファイルを設置します。
- # touch /etc/xinetd.d/git-daemon
内容は以下のように
- # default: off
- # description: The git server offers access to git repositories
- service git
- {
- disable = no
- type = UNLISTED
- port = 9418
- socket_type = stream
- wait = no
- user = nobody
- server = /usr/bin/git-daemon
- server_args = --inetd --export-all --base-path=/var/git --enable=receive-pack
- log_on_failure += USERID
- }
以上で完了です。
レポジトリの追加
レポジトリの追加についても簡単にまとめておきます。
- mkdir /tmp/hoge
- cd /tmp/hoge
- git init
適当なところでローカルのgitレポジトリを作成する
- touch hoge.txt
- git add .
- git commit -m "1st commit."
そのリポジトリになんでも良いので1発コミットをしておく。
- cd /var/git
- git clone --bare /tmp/hoge .hoge.git
- touch hoge.git/git-daemon-export-ok
- chown -R nobody:nobody hoge.git
公開用に設定してある/var/gitに移動し、公開用リポジトリ作成。 --bareオプションを忘れずに。
ディレクトリのオーナーをnobodyにしておく(/etc/xinetd/git-daemonで設定したユーザー)
以上です。
--
追記
参考にしたのはここ
Everyday GIT With 20 Commands Or So
http://www.kernel.org/pub/software/scm/git/docs/everyday.html
さらに
gitosis - Git リポジトリ群の管理とアクセス制御 vol.0
http://openbooth.org/archives/60.html
この辺を参考にしてもっと細やかな管理方法を会得したい。
6月 15th, 2009 at 1:41 PM #xenix
大変お世話になっております。 私はxenix.dip.jpというサイトを運営しております。 挨拶くらいはしたかったのでこのコメントを残します。 このサイトは私が自分のためにIT情報を集めるだけのサイトでしたが、ちょっとモッタイナイ気がして、公開する事になりました。 許可もなく、コピーペーした事、大変申し訳ありません。
お陰さまで色々勉強になりました。
これからもコピーペーしますが、お許しください~~~