搭建Gitolite镜像服务器

本人也是小菜鸟一个,这几天折腾一下Gitolite的镜像服务器,上网找了一些资料,参考了几个前辈的文章,最后总算是搭成了,记录一下以备忘。不一定全正确

1、登陆本地管理账号,我们这里用root,用ssh-keygen生成一个管理公钥

wKioL1NZ3QSQJTdAAAF3uxMyBYs012.jpg

2、在主备服务器上安装gitolite之前装好相关的软件

apt-get install git-core openssh-server

同时新建git用户

adduser --system --shell /bin/bash--group git

到root用户下,将生成的公钥文件拷贝到主备服务器上并命名为,安装时用该公钥做为管理员公钥,中间会要求输入一次git用户的密码

scp .ssh/id_rsa.pub git@gitserver:~/admin.pub

scp .ssh/id_rsa.pub git@gitmirror:~/admin.pub

wKiom1NZ3T7AGZehAAIvA8SJxFw064.jpg

到主备服务器登陆git用户,同样的用ssh-keygen命令生成各自的公钥文件,然后在.ssh目录下新建一个config的配置文件,将文件的内容指向对方服务器

wKiom1NZ2vzSzwB5AABPoJBVVDI071.jpgwKioL1NZ2tPS67wmAABK7zYwc3E685.jpg

3、下载并安装Gitolite

下载Gitolite: git clone git://github.com/sitaramc/gitolite

在git家目录下新建一个bin目录,并把bin目录加入系统变量

wKiom1NZ2uGzNltAAABXKK-pqw8793.jpg

开始安装Gitolite,要使用之前传过来的admin.pub公钥

wKiom1NZ3XHhVmxqAADknA1zFoc289.jpg

镜像服务器上也进行一样的安装操作

wKioL1NZ2w2wsiR5AAD_va2AIpc097.jpg

4、回到管理员帐户root用户下(我这里用的是root用户直接管理,也可能建其它用户作为权限管理用户),分别下载主备服务器上的管理仓库gitolite-admin并命名为gitserver和gitmirror

wKiom1NZ20izfrwwAAIyl9Wy_-E238.jpg

分别将之前主服务器上git用户生成的公钥复制到gitserver和gitmirror目录下的keydir目录中并将公钥命名为以server-开头的公钥,该公钥用来主备服务器同步使用

wKiom1NZ22nxXyC2AADQU8_6cVY766.jpg

修改gitserver和gitmirror目录下conf/gitolite.conf配置文件,将server-gitserver加入gitolite-admin仓库的写权限中

wKioL1NZ203g4NaRAAA8BPcOIRo438.jpg

修改完成后用将修改提交到服务器中

wKioL1NZ216BoU_3AAOyK9jbLp4207.jpg

提交后到主服务器用git用户登陆后可以验证公钥是否生效

ssh gitmirror info

wKiom1NZ25uzsM9JAAFUTT_nHXw081.jpg

看到以hello server-xxxxx开头的信息则生效了

5、配置主备服务器的镜像

到管理员root处修改gitserver和gitmirror目录下conf/gitolite.conf配置文件在gitolite-admin仓库下添加下面的内容

optionmirror.master = gitserver
option mirror.slaves = gitmirror
option mirror.redirectOK = all

wKioL1NZ24WQqXG7AABpmyy_jSs879.jpg

修改完成后,提交

wKiom1NZ27vjjNlcAAJpmpT50o8317.jpg

分别到主备服务器用git用户登陆,在git家目录下打开.gitolite.rc文件,打开镜像配置,一共要修改三个地方(我用的是gitolite3.5.3.1的版本,早期的版本修改的地方会有不同)

wKioL1NZ27_TXuKcAAAqVFTjGr8951.jpg

=>

wKiom1NZ2-mg4GqIAAA_Cllj5HE091.jpg


wKioL1NZ2-GimJiKAABKnrNaAy0166.jpg=>wKiom1NZ3Avia3AKAABJ504sQLU358.jpg


wKioL1NZ2-Hh4fMKAAA0xBY9Wd0697.jpg

=>

wKiom1NZ3Augpkx8AAA8qQO2_JU900.jpg

修改完成后保存退出这样子gitolite-admin仓库的镜像配置就基本完成了,测试一下吧

在gitserver目录下修改gitolite.conf文件的内容,然后提交到服务器

wKiom1NZ3FrxvJDnAACPoYHYxTs331.jpg

wKioL1NZ3FfDyhJXAAFRSTYMQZw213.jpg

到gitmirror目录下git pull看看有没有更新

wKiom1NZ3L_BXmXDAAGxXfszLVU527.jpg

提示有冲突了,说明主服务器上的更新己到镜像服务器了,但是和你之前下载的有冲突了,重新clone一次镜像服务器上的gitolite-admin目录,这时再看看

wKioL1NZ3K3TPY4VAADEhJAW5vM091.jpg

更新成功了。

这样子你只要将要同步的仓库下设置镜像配置,对就应的仓库每次提交后都会自动同步到镜像服务器中,当然你也可以对所有的仓库都同步,只要这样子配置一下就可以了

wKioL1NZ3Mej4pxgAADitLlWNs0040.jpg

提交吧,这样子就不对针对每个仓库都设置了

注意,以后要新建仓库只要在配置文件中设置好仓库名称及相应的权限,在提交后系统就会自动根据配置文件来创建仓库,这样子后面的同步才会生效,否则如果你手动建仓库的话则要把gitolite重新装一次。如:

wKioL1NZ3Nuie_-kAADxJZOCkpY174.jpg

wKiom1NZ3QWS22qyAAFQYqkdc64159.jpg


你可能感兴趣的:(镜像,服务器,gitolite)