gitサーバのgitoliteが便利
基本的にはチェックアウトした中に入っているReadmeに入っている通りだけど、日本語情報と最近のインストール手順が微妙に違っていたので纏め。
環境はCentOS5.7。CentOS6.1だとどこかのリポジトリに入っていた筈なのでyumから入れてもいいかもしれない。
- インストール準備
専用ユーザを作った方が楽な気がするので、gitoliteユーザを追加
- インストール
git clone http://github.com/sitaramc/gitolite.git
gitoliteの.bash_profileを弄って /home/gitolite/bin を追加した上でgitolite/src/gl-system-installを実行。$HOME以下に展開される。
管理用公開鍵を ssh-keygenで作成。作るときにgitolite-admin/gitolite-admin.pub等にしておくと見分けやすい。
gitolite管理用鍵のインストールは、
という風に、gl-setupの引数に管理用鍵の公開鍵を指定する。実行すると、~/.gitolite.rcの編集画面に入るが、特に必要が無ければ編集する必要は無い。
gl-setup ~/.ssh/gitolite-admin.pub
- 管理
gitoliteユーザで管理する為に、gitoliteの~/.ssh/configを適当に編集する。
host repository
hostname localhost
User gitolite
IdentityFile ~/.ssh/gitolite-admin
とかした上で、git clone ssh://repository/gitolite-admin とすると、gitolite管理用のレポジトリがチェックアウト出来る。
- ユーザ追加
ユーザ追加は、 gitolite-admin/keydir/ に ユーザー名.pub の形式で配置し、コミットするだけで追加される。このユーザー名を使ってアクセス制御を行う。
kamiya.pub をコミットしてユーザを追加したら、kamiyaの~/.ssh/config にも以下の様に設定を施す。
host repository
hostname localhost
User gitolite
IdentityFile ~/.ssh/kamiya
テスト用にtestingリポジトリが用意されているので、試しにチェックアウトしてみる。
git clone ssh://repository/testing
- アクセス制御とリポジトリの追加
チェックアウトした gitolite-admin/conf/gitolite.conf を編集してコミットするだけで新しいリポジトリが作成される。また、Rは読み込みの身、RWで読み書き可能なユーザを表せる。以下では、新しいkamiyaというリポジトリに対して、kamiyaは読み書き可能、kamiya意外は読み取り専用という構成になっています。
repo gitolite-admin
RW+ = gitolite-adminrepo testing
RW+ = @allrepo kamiya
R = @all
RW = kamiya
+の部分は、git resetを許可するかの違いです。
以上、駆け足でしたがgitoliteのインストールと利用方の説明でした。みなさんも楽しいgitライフを!