同步gitlab教程

为了代码安全,有时候需要把代码实时备个份,这两天折腾了一下gitlab的mirror服务

看说明,gitlab的企业版好像默认自带了mirror功能,然而ce版没有,所以github上有个git-mirrors 这样一个项目,顺着走下来,中间碰到一些坎。

1. prefix

安装git >= 1.8.0

因为centos6里面的yum源只有1.7.1的git,所以要手动编译git

yum install -y openssl-devel curl-devel libxml2-devel perl-XML-Parser expat-devel perl-devel tcl gettext-devel

wget https://github.com/git/git/archive/v2.6.2.tar.gz

tar xzvf v2.6.2.tar.gz

cd git-2.6.2/

make configure

./configure –prefix=/usr/local

make

make install

安装 python-gitlab3

yum install -y python-setuptools

git clone https://github.com/alexvh/python-gitlab3.git

cd python3-gitlab3

python setup.py install

 

2. gitlab-mirrors

在本地的gitlab建立gitmirror用户,并设置为管理员,并建立相应group

在本地系统内建立名为gitmirror的用户,建立ssh-key并上传id_rsa.pub到刚刚建立的gitlab用户的key里面,吧id_rsa拷贝到本地的private_key

建立crontab

@hourly /home/gitmirror/gitlab-mirrors/git-mirrors.sh

克隆有两个模式,一个是自动添加,一个是克隆到某个空白库,自动添加我没成功,我先在我的gitlab添加一个空白项目,然后用脚本添加

 

./add_mirror.sh –git –project-name timeline –mirror git@git.shallwe.net:3ti/timeline.git  –no-create git@git2.shallwe.net:3ti/timeline.git

 

之后因为crontab在,会自动每小时更新一次git,亲测有效。

Leave a Reply