Gitosis 服務架設

一,關於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 編輯項目組和用戶。

相關文章
相關標籤/搜索