使用gitolite搭建git服务器
发布时间:2018-06-21 18:21:29作者:wangjian浏览量:754点赞量:0
一.配置gitolite管理员
gitolite管理员可以使本地用户也可以是服务器上的用户
1.gitolite管理员在本地
(1)在本地安装git
(2)在本地安装TortoiseGit
(3)使用puTTYgen生成属于你的密钥对
(4)将本地生成公钥上传到服务器上:
scp WANGJIAN.pub root@192.168.11.129:/tmp
2.gitolite管理员在服务器上
(1)在服务器上专门创建一个gitolite管理员用户
useradd gitolite //创建gitolite用户
passwd gitolite //给gitolite用户设置密码
(2)在 gitadmin 用户下生成公钥私钥
ssh-keygen//中间敲三次回车//第一次:默认生成的路径,回车//第二次第三次 输入密码 确认密码,建议回车
(3)将生成的公钥放到/tmp目录下
cp /home/gitadmin/.shh/id_rsa.pub /tmp/admin.pub
二.安装gitolite
1.安装gitolite前准备
在root用户下安装以下软件
(1).安装git
yum install git
(2).安装perl
yum install perl
(3).安装cpan
yum install cpan
(4).安装openssh
yum install openssh
2.安装gitolite
(1)创建一个git用户用于管理git服务和安装gitolite
useradd git//创建git用户
passwd git//设置密码
su git
注意:切换到git用户,并确保~/.ssh/authorized_keys文件为空或者不存在,若存在删除authorized_keys文件 rm -rf authorized_keys
(2)执行安装操作
git clone git://github.com/sitaramc/gitolite //下载gitolite软件
mkdir -p $HOME/bin//创建bin目录
gitolite/install -to $HOME/bin #安装gitolite
export PATH=$PATH:$HOME/bin
echo "PATH=$PATH:$HOME/bin" >> .bashrc
gitolite setup -pk /tmp/admin.pub #将你要设置的gitolite用户配置为git的管理员
如果在执行gitolite/install -to $HOME/bin时报如下错误:
Can't locate Time/HiRes.pm in @INC (@INC contains: /home/git/gitolite/src/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/git/gitolite/src/lib/Gitolite/Common.pm line 74.
BEGIN failed--compilation aborted at /home/git/gitolite/src/lib/Gitolite/Common.pm line 74.
Compilation failed in require at ./install line 15.
BEGIN failed--compilation aborted at ./install line 15.
需要安装perl-Time_HiRes:
yum install -y perl-Time-HiRes
安装完成后,我们可以在/home/git目录下发现repositories目录,里面有两个仓库,分别为gitolite-admin和testing,其中gitolite-admin为管理仓库。
3.克隆gitolite-admin库
1.gitolite管理员配置的是本地:
(1)在本地创建一个文件夹,进入创建目录右击选择git bash here 输入git init
(2)右击设置git@192.168.11.129:gitolite-admin
右击进行拉取可有看到出现了conf和keydir两个文件夹
2.gitolite管理员配置的是服务器用户
(1)切换到gitolite用户 su gitolite
(2)clone git用户下的gitolite-admin.git
git clone git@192.168.11.129:gitolite-admin
可以看到gitolite用户下出现了一个gitolite-admin文件
在gitolite-admin目录下有conf和keydir两个文件夹
至此gitolite搭建git服务器完成
keydir这个文件是用来放置公钥的(想要配置一个用户权限首先把用户的公钥放到keydir文件下)
conf这个目录下的gitolite.conf文件是用来配置仓库及权限的
这里面每一个repo都是一个仓库
gitolite.conf学习参考https://gitolite.com/gitolite/conf/index.html
下一篇:shell简单脚本举例