若只作为版本控制,使用Gitlab构建Git服务器,是一个十分不错地选择。
但要把版本控制作为一个生态系统的组成部分,使用文本模式的Gitolite构建Git服务器,会更利于系统管理。
下面开始Gitolite构建Git服务器
一、环境准备
两台CentOS6.5 系统服务器,一台做客户机,一台做服务机,配置如下:
客户机:
主机名:gclient.ylhb.com
IP:10.0.0.201
hosts绑定:
10.0.0.211 gserver1.ylhb.com
服务机:
主机名:gserver1.ylhb.com
IP:10.0.0.211
hosts绑定:
10.0.0.211 gserver1.ylhb.com
二、安装及配置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/
三、客户端生成秘钥对,为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
四、管理员日常管理(客户机)
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