gitの管理系としてgitoliteを採用し、環境を構築する。
まずは各種のインストール。
gitoliteは公式レポジトリにないので、
EPELから取ってくる。
# yum install git
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
# yum install gitolite
これでgit及びgitoliteが導入された。
gitをホストするためにgitoliteという名前のユーザーがインストール時に作成されている。
注意すべきは、gitoliteアカウントがgitサーバにおけるすべてのレポジトリの所有者であり、
唯一必須のgitサーバのシステムアカウントである点である。
すべてのユーザーはgitoliteアカウントとしてgitサーバにアクセスすることになる。
各ユーザーはSSH公開鍵によって区別される。
このあたりがしばらく理解できなくて苦しんだ。
つぎにgitの管理ユーザーのための設定を行う。
gitoliteは管理情報をgitで管理するため、管理ユーザーすらgitサーバに、
(共用であるgitoliteアカウント以外には)システムアカウントを必要としない。
gitのクライアントとなる端末(サーバと同居してもいいが)のユーザーでsshの鍵を作り、
gitoliteが導入されているサーバにコピーしておく。
以下はクライアントでの作業
$ ssh-keygen -t dsa
これで、~/.ssh/id_dsaと~/.ssh/id_dsa.pubが出来ているはずである。
また、sshのコンフィグファイルを作っておくと便利である。
以下はクライアントでの作業
$ vim ~/.ssh/config
host gitserver #gitserverは適当に名前を変えてもよし
user gitolite
hostname 192.168.1.2 #gitserverのIPかDNSでひけるホスト名
port 22
identityfile ~/.ssh/id_dsa
id_dsa.pubをgitサーバにコピーし、/tmp/admin.pubなどにおいておく
(セットアップが終わったらいらなくなるのでtmpでよい)
gitoliteは鍵の名前でユーザー名を管理することになるため注意。
(この例では管理ユーザーの名前はadminとなる)
以下はgitサーバでの作業
# chmod a+r /tmp/admin.pub
# su -l gitolite
$ gl-setup /tmp/admin.pub
このあと設定ファイルをいじるためにvimが起動するが
ESC→:q→リターン
で抜ける。
この時点で管理データレポジトリがたっており、あとはすべて外からgitを介して設定できる。