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

■参考ページ

コメントを残す

メールアドレスが公開されることはありません。