Gitoliteをインストール

gitを使いたいと思って色々とサービスを調べたんだけど、なんとなく気に入ることが出来なくて…結局、さくらのVPSに構築してみることにした。 まだお試し期間だけど。 今回はUbuntu 11.04にgitリポジトリを用意し、Macからリポジトリを管理する。

gitを管理するにあたって、Gitoliteが使いやすいらしい。 ■ gitのgitによるgit(ユーザ)のためのリポジトリ管理 | Ken's evitation http://blog.teapla.net/?p=176 以前、gitosisについて書いたけど、これよりも細かく管理できるみたい。 使い方は似てるっぽい。

各種サービス

いくつか、有名なサービスのプランを紹介。

■ Plans & Pricing - GitHub https://github.com/plans

$7/mo 5 Private Repositories 1 Private Collaborator
有名所。 よさそうだけど "5 Private Repositories" ということで、使って壊してを繰り返すことを考えると物足りない? 公開してしまえばいいんだけど…別の理由もあってやめた。 ここはforkして色々出来るのがいいよねっ!って使い方も含めて楽しむのがいいのかも。

■ Pricing/Plans | Assembla http://www.assembla.com/plans

$100/month
遊びに使う程度だと高い。

■ Plans and pricing for Bitbucket https://bitbucket.org/plans

Free
ここはgitじゃなくて、mercurialだけど、gitにこだわらないならおすすめ! ちょっと使ってたことあるけど、便利。 安いってもんじゃなく、無料! 数人なら使えるし、wikiも使える。

別の理由 - JIRA

gitを選ばなかったもうひとつの理由。 それはJIRAを使ってみたかったから。 それだけー。

■ JIRA (ジラ) - 価格 http://www.atlassian.com/software/jira/japan-pricing.jsp 少人数だったら安いし、使ってみてもいいんじゃないかな?と思ってる。 ただ、これは製品であって、サービスじゃないから自分で管理しなきゃならないけどね。 ちなみに、JIRAもBitbucketもアトラシアン(Atlassian)の製品&サービス。

■ リックソフト株式会社|アトラシアン(Atlassian)製品のプロフェッショナルサービスを提供します http://www.ricksoft.jp/ JIRAの情報はほとんど英語だから、日本語で読みたいとか調べたいなら、このサイトが役立つかも?

本題のGitolite

やっと本題のGitoliteのインストール。 ■ Pro Git - Pro Git 4.8 Git サーバー Gitolite http://progit.org/book/ja/ch4-8.html この通りにやれば出来るから、ちょっと気になったことだけメモ。

Gitoliteはサーバー上のgitをクライアントから操作するような仕組みなので、サーバーの管理なんだけど、クライアントで操作する。

サーバー準備

  • git
  • ssh
  • perl
  • gitoliteユーザ

サーバーではこれだけは準備しておく。 gitを使えることが目的だから、gitは必要。 sshはgitを使うときにも、Gitoliteを使うためにも必要。

クライアント準備

  • git
  • ssh
  • ssh-copy-id

gitとsshの必要性はサーバーと同じ。 ssh-copy-idってのは、特定のユーザの公開鍵をサーバーに登録するスクリプト。単なるスクリプトだから、手元に無かったらネットから拾ってくればそのまま使える。

gitoliteユーザのログイン準備

サーバー上のgitoliteユーザがgitをいじれるようにログイン出来るようにする。
ssh-copy-id -i ~/.ssh/id_rsa gitolite@gitserver
id_rsaはsshの秘密鍵のパス。スクリプトを見ると秘密鍵名を元に公開鍵(.pub付きファイル)を利用してる。 gitoliteはサーバー上のgitoliteユーザ。 gitserverはサーバー名。

早速ssh-copy-idを使うんだけど、ssh認証はパスワード認証を許可しておくこと。 ここで鍵を登録してしまえばパスワード認証は拒否設定にしても大丈夫。

ssh gitolite@gitserver pwd

これが実行できて "/home/gitolite" と表示されることを確認しておく。 表示される文字列は環境によるけど、だいたいこうなるでしょう。 逆に言うと、このコマンドが実行できる環境を作るのがssh-copy-idだから、無理してssh-copy-idを使わなくても問題ない。

Gitoliteをインストール

git clone git://github.com/sitaramc/gitolite
cd gitolite/src
./gl-easy-install -q gitolite gitserver sitaram
githubからgitoliteを持ってきて、ディレクトリ移動ってのが1, 2行目。 3行目がgitoliteのインストールコマンド。 -qオプションはquiteなので、消すと色々と表示される。 gitoliteはサーバー上のgitoliteユーザ名。 gitserverは先程同様、サーバー名 sitaramはクライアントのユーザ名。

自分の環境ではsakuraサーバーを使ってるし、kenユーザのため、こんな感じに実行した。

./gl-easy-install -q gitolite sakura ken
cd ~/gitolite-admin/

クライアントのホームディレクトリにgitolite-adminが出来ていたらたぶん大丈夫。 gitolite-adminには "conf", "keydir" の2フォルダがある。 confディレクトリには "gitolite.conf" ファイルがある。 keydirディレクトリには "ken.pub" がある。これはgl-easy-installコマンドの最後の引数(クライアントのユーザ名)がファイル名になってる。

設定はgitolite.confを編集、pushすることで行う。 ■ Pro Git - Pro Git 4.8 Git サーバー Gitolite http://progit.org/book/ja/ch4-8.html#id91 編集のしかたなどはこちらをどうぞ。

長々書いたけど、実行したコマンド数を見ればとても簡単にインストール出来ることがわかる。