ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2011年3月10日 星期四

gitosis

gitosis 大概是幫忙管理 git server 的 python script 集合。
幫助 設定,管理 git server。


安裝 gitosis 的步驟大概是:
  • 安裝 git-core, gitosis
  • 開一個 git user 帳號,設定 git user 的 home dir

aptitude install 完 gitosis,會create 一個 gitosis usr,home 是在 /srv/gitosis
/etc/passwd:
gitosis:x:104:113:git repository hosting,,,:/srv/gitosis:/bin/sh /src/gitosis 裡只有一個空 link, link到自己的 repository 目錄 (剛裝完,還沒create)。

第一個用來 init gitosis 的 rsa pub key 可以是任何一個 user 的,只是等一下要用那個 user 來 clone gitosis 的 config file。
- 所以用你自己 ~/.ssh/ 下的 就可以。

但是平時用來作 ssh connection key 的是 dsa, 這個要用的是 rsa,所以要重新產生一次。

用 gitosis 這個 user 來執行 gitosis-init 這個 command。
gitosis-init 會在你執行的目錄下產生工作目錄,所以一般教學的 command 都寫:
sudo -H -u gitosis gitosis-init < ~/.ssh/id_rsa.pub -H 代表 執行時,到該 user 的 HOME 下
-u gitosis 代表 switch 到 gitosis 這個 user 去執行
執行 gitosis-init 時,把自己的 id_rsa.pub 餵給他。

執行完後, gitosis 這個 user 的 HOME (/srv/gitosis) 目錄就多了兩個 folder:
gitosis, repositories


新增 project repo 的方法,就是修改 gitosis-admin.git/gitosis.conf 檔。

所以要 clone 下來,修改完commit 後再 push 回去。

之後新建一個 project,再加入這個 new repo 為 remote target.

gitosis-init 剛開始執行時給的 rsa/dsa pub key file 是設定一個可以 clone gitosis-admin 的 key (避免 雞-蛋 問題)。
所以餵進去的可以是任何人的 ssh pub key,但是等一下要用那個人的 account 來 clone gitosis-admin.


add user 的方法大概就是把那個人(的account) 的 pub key copy 到 keydir 下。
然後在gitosis.conf 中,就可以把"那個人" 加到 members 裡。

在 gitosis.conf 中,members 是寫 keydir 裡面,key file的 filename。
所以範例上,從各 client 把 pub key 送過來後,都會rename。
例如:
從 robot 的 charles 來的 id_dsa.pub,就 rename 成 charles@robot.pub。
然後,gitosis.conf 的 members 就可以寫
members = charles@robot 如果有兩個人,中間用 space 隔開: members = charles@robot tony@gps1004 members list 也可以寫 group name。 例如,先前定義過 allmembers group: [group allmembers] members = charles@robot tony@gps1004 nelson@thinkpad 下面新開的 repo 就可以這樣用:
[group bootloader] writable = a2-bootloader members = @allmembers

ref:

沒有留言:

標籤

網誌存檔