使用gitolite3.6搭建git鏡像伺服器

需求:

在外网搭建一台git服务器,大家在任何联网的地方可以向git服务器提交、clone,如果一个仓库特别大,在公司clone一个仓库的时候会使用时间过长,带宽占用等不利的因素,那我们在公司内网搭建一台镜像服务器,clone代码的时候可以从镜像服务器clone,会省很多时间,下面我们开始。

我是参照gitolite官网文档搭建的:http://gitolite.com/gitolite/mirroring.html

环境:

总共3台机器,一台在外网git主服务器(以下称为servser1),一台在公司内网git镜像服务器(以下称为server2),另外一台客户机(以下称为client),此实验环境都使用的rhel6.5。

server1的ip:192.168.1.172

server2的ip:192.168.1.165

client 的ip:192.168.1.180

在3台机器的hosts文件中添加以下内容:

192.168.1.172 server1.example.com
192.168.1.165 server2.example.com

在server1和server2上安装git,并且创建git账户

#yum -y install git perl-Time-HiRes
#useradd git
#su - git

在client、server1、server2上生成key

#ssh-keygen

在client端上传到server1、server2,并改名为admin.pub,并且下载server1的pubkey并且命名为server-server1.pub(此处服务器的pubkey必须以server-开头

#scp .ssh/id_rsa.pub server1.example.com:/tmp/admin
#scp .ssh/id_rsa.pub server2.example.com:/tmp/admin
#scp server1.example.com:/home/git/.ssh/id_rsa.pub /tmp/server-server1.pub

在server1、server2上创建config文件,文件权限设置为644

server1的配置:

#vim .ssh/config

###添加以下内容###
host server2
user git
hostname server2.example.com
identityfile ~/.ssh/id_rsa
###保存退出###

#chmod 644 .ssh/config

server2的配置:

#vim .ssh/config

####添加以下内容
host server1
user git
hostname server1.example.com
identityfile ~/.ssh/id_rsa
###保存退出###

#chmod 644 .ssh/config

在server1、server2端下载安装gitolite

#git clone git://github.com/sitaramc/gitolite
#mkdir ~/bin
#gitolite/bin/install -to /home/git/bin
#gitolite setup -pk /tmp/admin.pub

到此我们可以在client端克隆gitolite-admin仓库

创建server1,server2目录以便区分是哪台服务器的gitolite-admin仓库

#mkdir server1
#cd server1
#git clione git@server1.example.com:gitolite-admin
#cd gitolite-admin
#cp /tmp/server-server1.pub keydir/
#vim conf/gitolite.conf

###添加server-server1到gitolite-admin的仓库读写权限###
repo gitolite-admin
RW+ = admin server-server1

repo testing
RW+ = @all
###保存退出###

#git add . && git commit -m "update gitolite.conf,add server key" && git push

创建server2目录,重复以上步骤

在server1端执行以下命令出现 ‘hello server-server1, this is git@server2 running’消息则生效

#ssh server2 info

在client端修改server1、server2仓库的gitolite.conf文件,添加以下内容,并且提交

repo gitolite-admin
RW+ = admin server-server1
option mirror.master = server1
option mirror.slaves = server2
option mirror.redirectOK = all

repo testing
RW+ = @all
option mirror.master = server1
option mirror.slaves = server2
option mirror.redirectOK = all

#git add . && git commit -m "update gitolite.conf" && git push

在server1端修改git家目录下 .gitolite.rc文件(总共修改三个地方)

#vim .gitolite.rc

###取消注释,更改hostname为server1###
HOSTNAME => "server1",

###取消注释###
'mirror',
'Mirroring',

在server2端修改git家目录下 .gitolite.rc文件(总共修改三个地方)

#vim .gitolite.rc

###取消注释,更改hostname为server1###
HOSTNAME => "server2",

###取消注释###
'mirror',
'Mirroring',

此时镜像服务器就已经搭建完成了,我们来测试一下是否能同步

在client端server1目录克隆一下主服务器的测试仓库,在里面创建文件提交以后看看是否会同步到镜像服务器。

#git clone git@server1.example.com:testing
#cd testing/
#touch test.txt
#git add . && git commit -m "add file" && git push origin master

在client端server2目录克隆镜像服务器的testing仓库

#git clone git@server2.example.com:testing
#ls testing

此时看到testing目录下有test.txt文件,说明我们的镜像服务器搭建成功了

如果所有的仓库都做镜像只要添加以下内容就可以了

repo @all
option mirror.master = server1
option mirror.slaves = server2
option mirror.redirectOK = all

本文出自 “linux” 博客,请务必保留此出处http://crazyjjx.blog.51cto.com/2746212/1558131

更多相关文章
  • 


    		    搭建Gitolite鏡像伺服器
    本人也是小菜鸟一个,这几天折腾一下Gitolite的镜像服务器,上网找了一些资料,参考了几
  • ####################################################################################################### qq:1218761836 qq群:150181442 E-mail:wangxing012 ...
  • git在用户管理及管理上,下面上三种解决辦法: 如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了.我们假设用来共享仓库的服务器已经安装了 SSH 服务,
  • 


    		    Linux下使用Apache搭建Web網站伺服器
    Linux下使用Apache搭建Web网站服务器 实验目标 apache服务器常见概念 apache服务器安装及相关配置文件 实战: 例1:为公司内网搭建一个web服务器 例2:取消apache默认欢迎页: 例3:使用rpm搭建lamp 环境 例4, 使用别名,引用网站根目录以外的路径. 例6:打开
  • 


    		    搭建Office 2010 KMS伺服器
    上一篇博文已经谈到搭建Windows 的KMS服务器,在此基础上在搭建Office的 KMS服务器就方便多了.Office 2010 的KMS服务器激活分为两种方式,第一种方式是通过电话激活,第二种方式是通过网络方式激活. 如果您的组织有 50 台或更多需要激活 Office 2010 的计算机,我
  • 一.部署环境 系统:CentOS 6.4x64 最小化安装 IP:192.168.3.27 二.安装基础依赖包 [root@nginx ~]#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-
  • 


    		    RedHat el5.0 搭建 Postfix 郵件伺服器系統<一
    RedHat el5.0 搭建 Postfix 邮件服务器系统 (postfix+cyru
  • /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-sty
一周排行