gitolite を Ubuntu 12.04 で使用する
Ubuntu 12.04 で gitolite を設定して使用したときのメモ。 ここでは gitolite 用にユーザ gitolite を作成して そのホームディレクトリ(/var/gitolite)以下に設定とリポジトリが配置されるようになる。
インストール、gitolite 用のユーザ、セットアップ
ここは root で作業する。
apt-get install gitolite
でインストールして、gitolite ユーザをホームディレクトリを /var/gitolite に指定して作成する。
adduser --system --disabled-password --shell /bin/sh --group gitolite --home /var/gitolite
gitolite の管理者となるユーザの鍵を username.pub にして
sudo -H -u gitolite gl-setup /path/to/username.pub
としてセットアップする。 gitolite ユーザのホームディレクトリ /var/gitolite 以下に .gitolite、.gitolite.rc、projects.list、repositories が作られる。
SSH 鍵が作成されていない場合
鍵を作成するには
ssh-keygen -t rsa -f key
とすると key と key.pub が作成される。 key.pub は公開鍵で ssh サーバや gitolite に設置して使用する。 key の方は秘密鍵で公開鍵が設定されている ssh サーバや gitolite にアクセスするために使用するので、 厳重に管理しなくてはならない。ssh のアクセスでこの鍵を使用するには
mv key ~/.ssh/id_rsa
のようにして ~/.ssh 以下に置く(もっと細かい設定もできる)。
gitolite の設定の仕方
公開鍵 /path/to/username.pub に対応する秘密鍵が設定されているユーザは gitolite のリポジトリにアクセスすることができる。 つまり、以下は一般のユーザで実行する。
SSH のユーザ名は gitolite で
git clone gitolite@example.com:gitolite-admin
のようにして設定ファイルのリポジトリをコピーする。 とりあえず、gitolite-admin の中の設定ファイルを編集するために、 ダウンロードしたディレクトリの中に入る。
cd gitolite-admin
ここで、
ls
とすると
conf keydir
の2つのディレクトリがある。keydir の方は gitolite のリポジトリへのアクセスを 許可するユーザの公開鍵を入れるディレクトリ。 conf の方は gitolite.conf には各リポジトリのユーザのアクセス制限が設定される。 これらのディレクトリに対して設定をして
git add .
git commit
などとして gitolite-admin の git リポジトリに変更を反映してから
git push
を実行してサーバ側に設定を反映させる。
ユーザを追加する
keydir ディレクトリに USERNAME.pub という名前の公開鍵を追加してサーバ側の git リポジトリを更新する。
リポジトリを追加する
conf/gitolite.conf に
repo new_repo
RW = user_name
のようなリポジトリの設定をする。サーバ側の git リポジトリを更新する。
参考
- http://mmho.no-ip.org/diary/20120518.html
- http://kurochan-note.hatenablog.jp/entry/20120603/1338695010
- http://sarl-tokyo.com/wiki/index.php?gitolite%E3%81%AB%E3%82%88%E3%82%8Bgit%E3%82%B5%E3%83%BC%E3%83%90%E6%A7%8B%E7%AF%89%E3%80%81%E3%81%8A%E3%82%88%E3%81%B3%E3%80%81%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95
- http://yuku-tech.hatenablog.com/entry/20120417/1334669330