技术交流QQ群:242722019
一.centos
os: centos6.7
git: 1.7.1
gitolite
步骤很简单,需要安装git,ssh支持,gitolite,然后公钥 . 本文全部采用的yum包过来的.
1. 登录服务器,安装,(#是root 登录后的.)
#yum install perl openssh git
装不上,那就装下面的依赖
#yum install curl-devel expat-develgettext-devel openssl-devel zlib-devel perl-devel
2.建立一个用户
#adduser --system --shell /bin/sh--create-home --home-dir /home/git git
#cd /home/git
#mkdir repositories
#chown git:git -R ./repositories
#chmod 700 ./repositories
3.切换至刚建的git用户 ($表示用户)
#su git
$git clone git://github.com/sitaramc/gitolite
$mkdir -p $HOME/bin
$gitolite/install -to $HOME/bin
这里可能会报错缺少模块,就需要切换到root安装缺失模块.比如perl-Time-HiRes这个
$su -
输入服务器root密码
#yum install perl-Time-HiRes
#su git
$gitolite/install -to $HOME/bin
然后这里安装的就完了.二、选择一个主机做为管理gitolite的管理员(这里很多文档没有强调说明清楚)
#ssh-keygen
#cd /root/.ssh
里面有id_ras.pub和id_rsa,一个是公钥,一个是私钥.如果之前你装过openssl产生过密钥,那这里就不要覆盖了
复制到服务器的/tmp
#scp ~/.ssh/id_rsa.pubserver_username@server_host:/tmp
输入密码
回到服务器,
#cd /tmp
#mv id_rsa.pub admin.pub
为什么要改成admin.pub因为gitolite根据这个文件名来设立帐号.我这里用admin
#su git 切换到git用户
$$HOME/bin/gitolite setup -pkadmin.pub(之所以直接用的admin.pub是因为在/tmp目录下su git的)
然后去/home/git/repositories里面,可以看见仓库文件.gitolite-admin.git和test.git一个是管理仓库的,一个是测试用
注:gitolite-admin.git仓库是管理员管理git所有仓库的,且只能作为管理员的主机才能进行配置修改。
#git clonegit@server_host:gitolite-admin
进入仓库后可以看到conf和keydir,conf/gitolite.conf是加用户/仓库的配置, keydir 是放对应用户的公钥.
注:配置好gitolite.conf和keydir对新建仓库很重要,配置好后需要push到服务器才能生效。
配置gitolite.conf文件
将添加用户的id_rsa.pub重命名成容易识别的***.pub文件放到keydir下面
git push到git server服务器,生效后查看/home/git/.ssh/authorized_keys文件可以看到新添加的用户已经添加进去,且配置的仓库也创建 在 /home/git/repositories中