您的位置:首页 > 其它

CI环境搭建----repo服务器搭建流程

2017-05-24 16:34 706 查看
由于工作需要,着手搭建了个基于gerrit的repo服务器,这里记录下流程和踩过的坑~~~

环境:linux unbuntu16.10 两个,一个为gerrit服务器,一个做repo客户端

操作概述
Server端:
1.下载repo工具,创建仓库供client端下载使用。
2.创建manifest工程
3.创建用来测试下载的工程gst-test

Client端:
1.向manifest工程添加default.xml
2.从server端下载repo工具
3..执行repo init
4.执行repo sync

具体流程
准备工作:
repo搭建前提:

1.将repo client所在机器的sshkey添加到gerrit服务器上的用户账号内。如果没有添加,按照如下方法执行:id_rsa.pub公钥文件的产生,注意:linux 用户一定要是后面用来搭建repo client的用户
$ sudo ssh-keygen -t rsa

查看公钥内容,执行拷贝
$ cat .ssh/id_rsa.pub 

浏览器登录gerrit用户,将公钥id_rsa.pub的内容拷贝到setting ->ssh public key中:点击 add key,将id_rsa.pub拷贝进来,保存,OK。
2.repo client 所在机器安装好git
如果已经安装git,忽略本步骤,没有安装则参照如下方式安装:
$ apt-get install git

 
一、Server端
1.repo 工具建仓
1)下载repo到gerrit上
网上查到的下载repo工具的地址验证都失败,无法下载repo工具, 故从现有环境另一repo10.20.114.36服务器上clone了repo 工具,放置在gerrit服务器的git仓库下,使用命令如下:
$ git clone --bare ssh://user_name@ip:29418/repo.git

其中 user_name为gerrit注册用户的用户名 ip为gerrit服务器的IP

查看repo仓库
$ ls

All-Projects.git  All-Users.git     git-hook-test.git  gst-first.git    hook2.git     hook.git   repo.git      wang-test.git

2)重启gerrit 服务,使新增仓库加入gerrit中
到gerrit 的bin目录下执行以下命令
./gerr
4000
it.sh stop 

./gerrit.sh start

或者
./gerrit.sh restart

 
2.manifest仓库的创建
manifest仓中存放着管理git库的xml文档,下载时可以指定xml文档的名字,如果不指定,默认为default.xml。
可以在浏览器中用gerrit管理员登录gerrit服务器,然后创建工程,也可以在gerrit服务器上使用git命令创建工程:
$ git init --bare manifest.git

使用git 命令添的仓库,加记得重启gerrit服务以使其加入gerrit管理。
仓库创建完成后需要在某个client端添加default.xml文件并push到服务器上。这里就使用client端完成这项工作,这个工作只在需要修改repo所管理的工程的时候再做。
3.gst-test仓创建,同manifest仓
$ git init --bare gst-test.git

二、Client端
1.完成server端manifest仓中xml文件的上传
对于新建的repo来说,manifest仓中必须要添加xml文件,这里使用默认的default.xml
Clone库
$ git clone ssh:///user_name@ip:29418/manifest.git

添加default.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>  

<manifest>  

<remote name="origin" fetch="ssh://user_name@ip:29418" review=" " />  

    <default revision="master" remote="origin" />  

    <project name="gst-test" path="gst-test"/>  

</manifest> 

其中fetch=后面的内容填入路径为manifest.git所在的同级目录的路径;
project name=填入的工程,这里名字为gst-test,这个工程需要gerrit上已经创建
到gerrit服务器
$ cd manifest/

$ ls

default.xml

$ git add .

$ git commit -m "update xml"

$ git push origin HEAD:refs/for/master

$ scp -p -P 29418 user_name@ip:hooks/commit-msg .git/hooks/ 

$ git commit --amend

$ git push origin HEAD:refs/for/master                                          

审核通过后commit到库中,待用...
 同样的方法向gst-test仓中提交一个文件,待用...
2.下载repo工具
Repo工具也可以到网上下载,但是目前网络上提供的地址都验证失败,这里使用自己搭建的repo库:
$ git clone ssh://user_name@ip:29418/repo.git

将其中的repo文件拷贝到~/bin/目录
$ cd repo/

$ ls

$ cp repo ~/bin/

添加可执行权限:
$ chmod a+x repo

设置PATH
PATH=~/bin:$PATH

3.执行repo init
$ repo init -u ssh://user_name@ip:29418/manifest.git

查看文件
$ ls -a

.  ..  .repo

$ ls -a .repo/

.  ..  manifests  manifests.git  manifest.xml  project.list  projects  repo

其中 ./repo/repo目录下放置的是repo工具
4.执行repo sync 同步工程
$ repo sync

查看clone下来的工程
$ ls

gst-test

OK,工程下载完成,大功告成!
如果有别的客户端要下载本项目,只需要执行客户端的2-4步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CI git gerrit 服务器