2010-11-03
最小限のgitレポジトリサーバ作成
チーム用にgitの共有レポジトリを作る機会があったので、その過程をメモしておきます。Ubuntu 10.04 LTSを使って、なるべく余計なものを動かさないという方針でやってみました。
インストール先はVMware server上の仮想マシンです。
Ubuntu 10.04のインストール
最小限のパッケージしかいらないので、インストールに使用するメディアもInstallation/MinimalCD - Community Ubuntu Documentationから持ってきたmini.isoを使ってインストールしました。プロキシ越しでもいいので、なんらかのネットワーク接続環境がないとこの方法はとれません。
インストールが終わったら、
% sudo apt-get update % sudo apt-get upgrade
で念のためパッケージを最新版にしておきます。多分インストール時に最新版を持ってきてくれているだろうけど。
VMware toolsのインストール
パッケージで入れたほうが何かとラクなので、VMware/Tools - Community Ubuntu Documentationに従ってopen-vm-toolsをインストール。headlessなサーバにするので、
% sudo apt-get install --no-install-recommends open-vm-dkms % sudo apt-get install --no-install-recommends open-vm-tools
として完了。
git/gitosisのインストール
gitのレポジトリへのアクセス制御などはgitosisで行うので、まずはこの2つをインストールします。これに関してはGit - Community Ubuntu Documentationの前半を参考にしました。
インストール自体は下記のコマンドで。
% sudo apt-get install git-core gitosis
管理に使うユーザの公開鍵を使って、gitosisの初期設定をします。
% sudo -H -u gitosis gitosis-init < /path/to/public_key
その鍵を使って、テストをかねてリモートからgitosisの設定ファイルをチェックアウト。
% git clone gitosis@yourserver.com:gitosis-admin.git
gitosis-admin/gitosis.confを適切に設定し、設定をサーバにpushします。
% git commit -am "Initialize" % git push
これでSSH越しの接続は動くはず。
gitwebのインストール
webからレポジトリをブラウズできると便利なので、gitwebを入れます。これに関しては、How to setup git, gitosis and gitweb | Public Memoryのgitwebのインストール部分を参考にしました。
gitwebにはapache2が必要なので、同時にインストールします
% sudo apt-get install apache2 gitweb
上記サイトの例を参考に、/etc/gitweb.confを書き換え、gitosisが管理しているレポジトリ群を参照できるようにします。変更/追加部分は下記の通りです。
$projectroot = "/srv/gitosis/git"; $projects_list = "/srv/gitosis/gitosis/projects.list"; $export_ok = ""; $strict_export = "true";
これで、gitosis.confで"gitweb=yes"としたレポジトリはgitwebから参照できるようになるはず。
git-daemon-runのインストール
gitプロトコルでもアクセスできるようにするために、git-daemonを起動するためのスクリプト群をインストールします。
% sudo apt-get install git-daemon-run
さらに、gitosisが管理しているレポジトリをアクセスするようにするために、/etc/service/git-daemon/runを編集。
... /usr/lib/git-core/git-daemon --verbose --base-path=/srv/gitosis/git /srv/gitosis/git
gitosis.confで"daemon=yes"としたレポジトリはこれでgitプロトコルでアクセス可能になります。
リソース消費量は?
この設定を行ったあと、ディスクの占有量は796Mbyte、メモリ利用量は64Mbyte程度でした。最小限のインストールでも800Mbyte程度はディスクを食ってしまうんですね。