CentOS6.5 Gitolite构建Git服务器

若只做为版本控制,使用Gitlab构建Git服务器,是一个十分不错地选择。git

但要把版本控制做为一个生态系统的组成部分,使用文本模式的Gitolite构建Git服务器,会更利于系统管理。github

下面开始Gitolite构建Git服务器
服务器

1、环境准备

两台CentOS6.5 系统服务器,一台作客户机,一台作服务机,配置以下:ssh

客户机:curl

主机名:gclient.ylhb.comurl

IP:10.0.0.201spa

hosts绑定:版本控制

10.0.0.211 gserver1.ylhb.com

服务机:code

主机名:gserver1.ylhb.comserver

IP:10.0.0.211

hosts绑定:

10.0.0.211 gserver1.ylhb.com

2、安装及配置gitolite(服务机上)

1.安装git及相关包

yum install zlib-devel perl-CPAN perl-devel curl-devel gettext expat-devel gettext-devel openssl-devel perl-Time-HiRes git -y

2.建立git用户

useradd -d /data/git git
echo '111111' | passwd --stdin git

3.安装gitolite

su - git
mkdir bin
git clone https://github.com/sitaramc/gitolite.git
./gitolite/install --to /data/git/bin/

3、客户端生成秘钥对,为gitolite配置管理员

客户机:

安装git

yum install git -y

建立git用户(root用户下)

useradd git
echo '111111' | passwd --stdin git
生产git用户密钥对

ssh-keygen -t rsa    #一直回车
上传公钥到服务机,并改文件名为admin.pub

scp .ssh/id_rsa.pub git@10.0.0.211:/tmp/admin.pub
服务机:

切换到git用户,为gitolite配置管理员

su - git
./bin/gitolite setup -pk /tmp/admin.pub

4、管理员平常管理(客户机)

1.克隆gitolite管理库

su - git
git clone git@10.0.0.211:gitolite-admin.git
能够看到管理库里有两个目录,其中conf/gitolite.conf用于Git项目配置及用户访问权限设置,keydir目录存放用户的SSH公钥。

2.添加用户,添加库及配置库管理用户权限

添加用户

将其余用户的SSH公钥文件(文件名为用户名.pub,如ylhb.pub)放在keydir下便可。

添加库

如添加gylhb库,并配置admin和ylhb用户对其可读、可写、可强制更新

编辑conf/gitolite.conf文件,配置以下便可:

repo gitolite-admin
    RW+     =   admin

repo testing
    RW+     =   @all

repo gylhb
    RW+     =   admin ylhb
提交修改并push到服务器,完成库及用户配置

git status
git add conf/gitolite.conf keydir/ylhb.pub
git commit -m "The first"
git push origin master
验证:

ylhb用户下执行如下命令:

git clone git@10.0.0.211:gylhb.git