Gitosis 服务架设

一,关于Gitosis

        Gitosis 是Gitolite的鼻祖,同样也是一款基于SSH公钥认证的Git服务管理工具。但功能要比Gitolite弱些。Gitosis作者 Tommi Virtanen 最后一次提交是2009年9月。现在已经停止了更新。但是Gitolite依然有其生命力。Gitolite 配置简洁,可以直接在服务器端编辑,可成为针对某些服务定制的、内置的、无须管理的Git 服务。


二、安装Gitosis

$git clone git://github.com/ossxp-com/gitosis.git

进入gitosis目录,执行安装。

$cd gitosis

$sudo python setup.py install

如果出现下面的出错提示:

Traceback (most recent call last):

  File "setup.py", line 2, in <module>

    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 


三、Gitosis 服务初始化

(1) 如果管理员在客户端没有公钥,使用下面的命令创建。

$ssh-keygen

(2) 管理员上传公钥到服务器。

jun@jun-ThinkPad-T440p:~$ scp /home/jun/.ssh/id_rsa.pub [email protected]:/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


四、管理Gitosis

1)管理员clone gitosis-admin管理库

当gitosis 初始化完成后,在服务端自动创建了一个用于gitosis自身管理的Git 库:gitosis-admin.git。

管理员clone gitosis-admin.git 库:

jun@jun-ThinkPad-T440p:~$ git clone [email protected]: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服务器生效。


五、增加项目

    git iinit --bare 同普通git。

     在gitosis.config 编辑项目组和用户。

你可能感兴趣的:(Gitosis 服务架设)