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 编辑项目组和用户。

相关文章
相关标签/搜索