gitosis on CentOS
gitosisとは、gitレポジトリのホスティングが出来るようになるソフトらしい。とりあえず使えるようになったのでメモ。
■環境
- CentOS 5.5
■インストール
まずは必要なプログラムをインストール。git-daemon, python-setuptools, gitosis 全てyumでインストール
$ sudo yum install git-daemon python-setuptools gitosis
■初期設定、作業用ユーザーの登録
gitosisのRPMをインストールするとgitosisユーザーが作られるけど、実際の設定作業は別のユーザー(ここでは kazu )を使って行う。
もしまだSSHの鍵がなければssh-keygenで作っておく。そして、以下のようにその鍵をgitosisに登録する。
[kazu@localhost ~]$ sudo -H -u gitosis gitosis-init < ~/.ssh/id_rsa.pub Initialized empty Git repository in ./ Reinitialized existing Git repository in ./
あとは、そのユーザーでgitosis-adminという管理用のファイルが入ったレポジトリを持ってくる。
[kazu@localhost ~]$ cd workspace #任意の作業用ディレクトリ [kazu@localhost workspace]$ git clone gitosis@localhost:gitosis-admin.git
■gitosisの設定
あとは、持ってきたgitosis-adminレポジトリの中をいじる。
gitosis.confは以下のように書く。[group gitosis-admin]の箇所は、初期設定の時に作られたもので、今回[group grouop1] を追加した。
意味としては、group1(任意の名前)に所属する、user1@example.comとuser2@example.comはrepo1と言う名前のレポジトリに書き込み可能。
[group gitosis-admin] writable = gitosis-admin members = kazu@localhost.localdomain [group group1] members = user1@example.com user2@example.com writable = repo1
あとは、gitosis-admin/keydirに各ユーザーのSSH公開鍵をそれぞれ以下の名前で保存
- user1@example.com.pub
- user2@example.com.pub
最後に git commit→git pushすれば設定が反映される。
[kazu@localhost gitosis-admin]$ git commit -a -m "added user1 and user2" [kazu@localhost gitosis-admin]$ git push
■レポジトリへのアクセス
これで、他のマシンから以下の通りレポジトリにアクセスできるはず。
[user1@anotherpc ~]$ mkdir repo1 [user1@anotherpc ~]$ cd repo1 [user1@anotherpc repo1]$ git init [user1@anotherpc repo1]$ git remote add origin gitosis@SERVER_NAME:repo1.git [user1@anotherpc repo1]$ #ファイル追加したりコミットしたり [user1@anotherpc repo1]$ git push