一,關於Gitosispython
Gitosis 是Gitolite的鼻祖,一樣也是一款基於SSH公鑰認證的Git服務管理工具。但功能要比Gitolite弱些。Gitosis做者 Tommi Virtanen 最後一次提交是2009年9月。如今已經中止了更新。可是Gitolite依然有其生命力。Gitolite 配置簡潔,能夠直接在服務器端編輯,可成爲針對某些服務定製的、內置的、無須管理的Git 服務。git
2、安裝Gitosisgithub
$git clone git://github.com/ossxp-com/gitosis.gitshell
進入gitosis目錄,執行安裝。bash
$cd gitosis服務器
$sudo python setup.py installssh
若是出現下面的出錯提示:工具
Traceback (most recent call last):post
File "setup.py", line 2, in <module>ui
from setuptools import setup, find_packages
ImportError: No module named setuptools
下載setuptools包
shell# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
解壓setuptools包
shell# tar zxvf setuptools-0.6c11.tar.gz
shell# cd setuptools-0.6c11
編譯setuptools
shell# python setup.py build
開始執行setuptools安裝
shell# python setup.py install
user@rdsrv00:~/gitosis$ sudo adduser --system --shell /bin/bash --disabled-password --group git
有些系統,只允許特定用戶組(如SSH用戶組)的用戶才能夠經過SSH協議登陸,這就須要將git 用戶加入到ssh用戶組中。
user@rdsrv00:~/gitosis$ sudo adduser git ssh
3、Gitosis 服務初始化
(1) 若是管理員在客戶端沒有公鑰,使用下面的命令建立。
$ssh-keygen
(2) 管理員上傳公鑰到服務器。
jun@jun-ThinkPad-T440p:~$ scp /home/jun/.ssh/id_rsa.pub user@192.168.1.100:/tmp
(3) 服務端進行Gitosis服務初始化。
以git 用戶運行gitosis-init命令,並向其提供管理員公鑰。
user@rdsrv00:~/gitosis$ sudo su git
git@rdsrv00:/home/user/gitosis$ gitosis-init < /tmp/id_rsa.pub
(4)確保gitosis-admin 版本庫鉤子腳本可執行。
user@rdsrv00:~/gitosis$ sudo chmod +x ~git/repositories/gitosis-admin.git/hooks/post-update
4、管理Gitosis
1)管理員clone gitosis-admin管理庫
當gitosis 初始化完成後,在服務端自動建立了一個用於gitosis自身管理的Git 庫:gitosis-admin.git。
管理員clone gitosis-admin.git 庫:
jun@jun-ThinkPad-T440p:~$ git clone git@192.168.1.100:gitosis-admin.git gitosis-admin-xxx
Cloning into 'gitosis-admin-zsun'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (5/5), done.
Checking connectivity... done.
jun@jun-ThinkPad-T440p:~$ cd gitosis-admin-zsun/
jun@jun-ThinkPad-T440p:~/gitosis-admin-xxx$ ls
gitosis.conf keydir
能夠看到,gitosis-admin 裏面有一個配置文件和一個keydir 目錄。
mitosis.conf 是配置用戶權限文件
keydir 用戶公鑰,初始只有一個管理員的公鑰文件。
2)增長用戶
(1) 提交用戶公鑰到keydir裏面
(2) git add 增長到git
(3) git commit 確認
(4) git push 同步到gitosis服務器。
3)更改受權
編輯gitosis.conf ,push到gitosis服務器生效。
5、增長項目
git iinit --bare 同普通git。
在gitosis.config 編輯項目組和用戶。