幫助 設定,管理 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:
沒有留言:
張貼留言