乐虎游戏|乐虎国际登录|欢迎你

Ubuntu 12.04 Server安装Gerrit

日期:2019-11-06编辑作者:计算机资讯

前生机勃勃阵子在CentOS 6.2上安装了Git/gitosis/ReviewBoard,这一个烦啊。首若是gitosis这几个东西管理不便于,其次是 Review board安装也相比较麻烦,需要在顾客端选用hook。

所需软件

Git:代码版本处理

Java:最低1.7版本

Gerrit:安装包是个war包

数据库:Gerrit协理H2(内置卡塔 尔(阿拉伯语:قطر‎ / MySQL / PostgreSQL,本安装选用PostgreSQL,完全开源且切合大范围数据的布署

身价验证:检查核对的前提是做身份认证来登入Web,Gerrit扶持OpenID / HTTP / LDAP,本安装选取已经搭建好的LDAP,但会讲课HTTP格局的表达,需求Apache做反向代理。

安装部分以ubuntu为例

CentOS下安装Redmine并集成Git

即便如此大家已经起首使用,而且用起来感到比较轻便。可是review board工作流过于宽松,程序员不通过批准也能够push代码到长途服务器上。基本上归于君子协定,不太切合对代码提交调查严俊的条件。

Git安装

sudo apt-get install git

首先获得安装文件

所以未来始于试用gerrit。此番运用Ubuntu 12.04 server。首先说一下gerrit的优势,它已经提供了拜谒git server的表达和project管理功效,由此制止了接受gitossi可能其余麻烦的管理工科具。

JDK安装

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk //当前设置为 jdk1.8.0_101

安顿Java境况变量

PATH,钦命命令搜索路线,在shell下实施命令时,会到PATH变量内定的不二秘诀中寻找相应命令程序,如java/javac

CLASSPATH,钦命类找寻路线,JVM通过它搜索类

JAVA_HOME,其余软件通过它找到jdk的装置目录

vi /etc/profileexportJAVA_HOME= /usr/java/jdk1.8.0_101/exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATHexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHsource/etc/profilejava -version

假使设置了两个jdk,就选取贰个暗许的

sudoupdate-alternatives --config java

PostgreSQL安装(近来用现存的Postgre数据库新建数据库和客商卡塔 尔(英语:State of Qatar)

sudoapt-get install postgresql

第少年老成安装后,会暗许生成名称为postgres的Linux系统客商、数据库和数据库客户(作为数据库管理员卡塔 尔(英语:State of Qatar),首先改革postgres数据库客商的密码,然后增添Gerrit须要的数据库

sudo-u postgres psqlpostgres=# password postgres(input password twice)postgres=# q

sudo-u postgres createuser -RDIElPS gerritsudo-u postgres psqlpostgres=# password gerrit(input password twice)sudo-u postgres createdb -E UTF-8-O gerrit reviewdb

Gerrit安装

从官方网站下载Gerrit的安装包,为了有扶助改名叫gerrit.war,建议创制叁个Linux客商来设置,本身安装在gerrit2客户的review_site目录下

sudoadduser gerritsudosu gerritjava -jar gerrit.war init-d/home/gerrit/review_site

下一场就能够进展过多配置,一大半暗许就能够,要小心的是数据库和身价认证,那么些布置也足以在安装完结后在~/review_site/etc/gerrit.config文件中期维修正。

当前gerrit.config配置为:

[gerrit]

basePath = /home/gerrit/git

serverId = 7e182d87-75eb-4046-8547-496b55ea7ad9

canonicalWebUrl =http://gerrit.*****-net.com:8080

[database]

type = postgresql

hostname = 172.17.3.132

database = gerrit

username = gerrit

[auth]

type = LDAP

[ldap]

server =ldap://172.17.3.101

username = svc.jenkins

accountBase = dc=*****-net,dc=com

groupBase = dc=*****-net,dc=com

[receive]

enableSignedPush = false

[sendemail]

smtpServer = 172.17.3.201

smtpUser = svc.jenkins

smtpPass =*******              //具体为邮件客商密码

from=CodeReview*****-net.com>    //发件人显示

[container]

user = gerrit

javaHome = /usr/java/jdk1.8.0_101/jre

[sshd]

listenAddress = *:29418

[httpd]

listenUrl = proxy-

[cache]

directory = cache

配备好gerrit.config文件后,运行Gerrit,须求用相对路线

/home/gerrit/review_site/bin/gerrit.shstart

在浏览器输入http://localhost:8080弹出Gerrit的页面。

登入管理员

率先次登陆的顾客为总指挥账号,ID为1000000,暗许唯有那些系统管理员才有Create权限(创设group和Project卡塔 尔(英语:State of Qatar)

在gerrit本机上采用上边包车型地铁一声令下生成管理员账号(这里将gerrit作为管理员卡塔 尔(英语:State of Qatar)的公共钥并将公钥上传至gerrit管理员顾客下。

ssh-keygen -t rsa #生成sshkey

ls ~/.ssh/ #可查看sshkey

cat ~/.ssh/id_rsa.pub #查看sshkey

Gitlab配置

Gitlab上的门类必须被保证,被保证的项目只允许master权限的客户实行push操作,其余客商无push提交权限。

普通客户未有直接push的权限。供给先review到gerrit上扩充核查并commit后,工夫更新到代码大旨货仓里。

项目予以gerrit客户master权限,给普通客商唯有develop也许reporter权限。

Gerrit客商配置

普通顾客登陆gerrit,将本机公钥提交到gerrit,设置邮箱。

提交gerrit的顾客名和信箱必得与git配置相仿。

Jenkins配置

Jenkins系统现已创制了组织者账户jenkins并安装了Gerrit Trigger插件和Git plugin插件

在“系统管理”->“插件管理"->”可选插件"->搜索上边七个插件进行安装。

设置Gerrit Trigger

Add New Server :gerrit.*****-net.com

勾选 Gerrit Server With Default Configurations

布置trigger新闻并测验连接

假诺上一步在点击“Test Connection”测验的时候,现身上面报错:

消除办法:

协会者登陆gerrit

Projects->List->All-Projects

Projects->Access

Global Capabilities->Stream Events 点击 Non-Interactive Users

添加Jenkins@zjc.com用户到 ‘Non-Interactive Users’ 组。

Gerrit 和 Jenkins 整合

让Gerrit支持Jenkins

若果设置Gerrit时并未有恐怕尚未选取增添Verified标签效应[‘lable Verified’],供给本人丰裕。

正如是手动增加Verified标签效应的安装

[倘若在安装gerrit的时候没有选取安装那个标签效应,就须求在这里地手动安装下。具体能够登录gerrit,ProjectS->list->All-Projects->Access->Edit->Add Permission 看里面是或不是有Verfied的选料]

# su - gerrit

$ git init cfg; cd cfg

$ git config --globaluser.name'gerrit'

$ git config --global user.email 'gerrit@devops_gerrit'

$ git remote add originssh://gerrit@http://gerrit.*****-net.com:29418/All-Projects

$ git pull origin refs/meta/config

$ vim project.config

[label "Verified"]

function = MaxWithBlock

value = -1 Fails

value = 0 No score

value = +1 Verified

$ git commit -a -m 'Updated permissions'

$ git push origin HEAD:refs/meta/config

$ rm -rf cfg

用gerrit管理员账号登入Gerrit

明日交给的Review央求独有Code Review核查,我们渴求的是急需Jenkins的Verified和Code Review双重保险,在 Projects 的 Access 栏里,针对 Reference: refs/heads/ 项增加 Verified 效率,如下如下:

Projects -> List -> All-Projects

Projects -> Access -> Edit -> 找到 Reference: refs/heads/* 项 -> Add Permission -> Label Verified -> Group Name 里输入 Non-Interactive Users -> 回车 恐怕 点击Add 按键 -> 在最上面点击 Save Changes 保存校勘。

(注意:提前把jenkins客商增进到Non-Interactive Users组内卡塔 尔(英语:State of Qatar)

权力改善结果如下:

如不供给经过jenkins Verified仅通过code review,则去掉Label Verified设置并暂停jenkins上gerrit trigger服务。

Gerrit工程建立

报到gerrit页面,CreateNewProject。想让gitlab上的门类能在gerrit上review的话,必得在gerrit上创立相近的品种,并有相通的酒店文件。

亟待承认gerrit账户在gitlab上是还是不是有权力,如未有权限须求在gitlab上为svc.gerrit客户导入gerrit服务器的id_rsa.pub

ssh登录gerrit服务器

$ /home/gerrit/git

$ rm -rf gerrittest.git

$ git clone --baregit@172.17.3.60:boyang.chen/gerrittest.git

gerrit即存在与gitlab近似的品种。

Gerrit同步到Gitlab配置

当客商校正文件,git add、git commit,提交push到gerrit的repo后,代码通过 jenkins 测试、人工review后,代码只是 merge 到了 Gerrit 的 gerrittest项目中,并从未 merge 到 Gitlab 的 test-project1 项目中,所以供给当Gerrit  项目堆栈有变化时自动同步到 Gitlab 的 gerrittest 项目客栈中。

Gerrit 自带叁个 Replication 作用,同期大家在安装 Gerrit 时候默许安装了这几个 Plugin。

1、以后只要求加上七个 replication.config 给 Gerrit

$ cd /home/gerrit/etc/

$ vim replication.config为项目配置同步音信

[remote "DCode"]

projects = DCode

url =git@gitlab.*****-net.com:sen.zhao/DCode.git

push = +refs/heads/*:refs/heads/*

push = +refs/tags/*:refs/tags/*

push = +refs/changes/*:refs/changes/*

threads = 3

[remote "ProjectC"]

projects = ProjectC

url =git@gitlab.*****-net.com:boyang.chen/ProjectC.git

push = +refs/heads/*:refs/heads/*

push = +refs/tags/*:refs/tags/*

push = +refs/changes/*:refs/changes/*

threads = 3

[remote "gerrittest"]

projects = gerrittest

url =git@gitlab.*****-net.com:boyang.chen/gerrittest.git

push = +refs/heads/*:refs/heads/*

push = +refs/tags/*:refs/tags/*

push = +refs/changes/*:refs/changes/*

threads = 3

2、设置gerrit用户的 ~/.ssh/config

$ vim /home/gerrit/.ssh/config

Hostgitlab.*****-net.com

Hostnamegitlab.*****-net.com

Protocol 2

HostKeyAlgorithms ssh-rsa,ssh-dss

地方安装的~/.ssh/config文件的权杖已定要设置成600

要不会报错:“Bad owner or permissions on .ssh/config“

3、在gerrit用户的~/.ssh/known_hosts 中,给gitlab服务器和gerrit服务器 加多 rsa 密钥

$ sh -c "ssh-keyscan -t rsagitlab.*****-net.com,172.17.3.60 >> /home/gerrit/.ssh/known_hosts"

$ sh -c "ssh-keygen -H -f /home/gerrit/.ssh/known_hosts"

$ sh -c "ssh-keyscan -t rsa [gerrit.*****-net.com]:29418,[172.21.129.31] >> /home/gerrit/.ssh/known_hosts"

$ sh -c "ssh-keygen -H -f /home/gerrit/.ssh/known_hosts"

安插后如下:

重新开动 Gerrit 服务

$/home/gerrit/bin/gerrit.sh restart

Gerrit 的复制作而成效配置完成。

在 Jenkins 上对 gerrittest项目创立创设任务

Jenkins上首先安装git插件:Git Plugin

登录jenkins,“系统管理”->“处理插件”->“可选插件”->选用Git Pluin插件进行设置

Jenkins上成立项目

添加 gerrittest工程

下边增添url(gerrit项目地址):ssh://svc.jenkins@gerrit.*****-net.com:29418/gerrittest

累加支行:$GE途乐帕杰罗IT_BRANCH

拉长品种具体单元测量试验build脚本

Gerrit+Jenkins+Gitlab实现code review流程

普通顾客操作:

Git Bash:

1、clone gerrit上项目并下载commit-msg文件:

git clonessh://svc.jenkins@gerrit.*****-net.com:29418/gerrittest&& scp -p -P 29418svc.jenkins@gerrit.*****-net.com:hooks/commit-msg gerrittest/.git/hooks/

2、改正当三步跳件

3、增多改正文件

git add .

4、提交改良

git commit

输入提交消息

5、提交push到代码核查分支:

git push origin HEAD:refs/for/master

Jenkins自动试行build,build成功

签到Gerrit页面,寻访到jenkins自动物检疫查测量试验了交给操作并且试行了build操作,build成功,标识Verified +1

开辟者可钦点编辑者举行Review操作,大概管理人及ProjectOwner有权力实行Review评分。

可增进或删除撰稿人

丰硕编辑者后,编辑者会选拔邮件提示

开荒者等待撰稿者提交检查核对上报,撰稿人CodeReview评分+2则通过核实。

代码调查者(Administrator,ProjectOwner,CodeReviewer卡塔 尔(阿拉伯语:قطر‎操作:

选取审查批准邮件后登录Gerrit

选择要扩充核查的交由记录(Open卡塔尔国

通过jenkins自动评分Verified时:

不经过jenkins进行Verified评分时:

进行Submit后,gerrit会自动同步校勘到gitlab库。

可透过查看replication日志了解同步意况:

任何操作:

gerrit手动同步代码到gitlab要旨商旅上

[gerrit@devops_gerrit]$ ssh-gerrit gerrit --help//查看帮助,发掘gerrit COMMAND --help可墨守成规命令扶助

[gerrit@devops_gerrit]$ ssh-gerrit replication start --help//查看replication同步命令的用法

replication start [PATTERN ...] [--] [--all] [--help (-h)] [--url PATTERN] [--wait]

PATTERN : project name pattern

-- : end of options

--all : push all known projects

--help (-h) : display this help text

--url PATTERN : pattern to match URL on

--wait : wait for replication to finish before exiting

[gerrit@devops_gerrit]$ ssh-gerrit replication start --all//同步全体工程

重载replication的一块儿服务

[gerrit@devops_gerrit]$ ssh-gerrit gerrit plugin reload replication

黄金时代旦报错:fatal: remote plugin administration is disabled

消除办法:

在/home/gerrit/etc/gerrit.config文件里加多上面内容:

[plugins]

allowRemoteAdmin = true

下一场重启gerrit服务就可以:

[gerrit@devops_gerrit]$ /home/gerrit/bin/gerrit.sh restart

Stopping Gerrit Code Review: OK

Starting Gerrit Code Review: OK

窍门:

Gitbash Push简洁操作:

在工程路线下写入下边包车型地铁授命:

$ git config remote.origin.push refs/heads/*:refs/for/*

那行命令的意思是,当实践 push 命令时,将会推送到refs/for/当前head所在的支行上。

安装之后即可依照事先的章程交给:

提交时

git push origin master或git push    即push校正内容到refs/for/分支

wget

有关阅读:Ubuntu 11.10 Server 安装Git 服务器 http://www.linuxidc.com/Linux/2012-02/54826.htm

日增可实行权限

1.安装git

chmod +x

sudo apt-get install git-core git-doc

安装

./bitnami-redmine-2.6.1-0-linux-x64-installer.run

2.增添linuxidc客商,密码也是linuxidc

此处配置全数内容,包括git在内的局地东西,由于设置的时候未有记录,这里没有办法上操作,具体就是大概全部的安顿都选yes,由于80端口被挤占了,配置进度中作者将apache的端口配置成了8080

参考:http://www.linuxidc.com/Linux/2012-05/60754.htm

安装达成后,访问

3.下载gerrit最新的war包

签到成功后创立叁个测量试验用的花色test

上边伊始安装git服务器

自个儿用的是2.3版本。

安装python-setuptools

4.备选Java运营条件

sudo apt-get install python-setuptools

现行反革命得以设置openjdk7了。

下载gitosis

apt-get install openjdk-7-jdk

<pre name="code" class="java">

本文由乐虎游戏发布于计算机资讯,转载请注明出处:Ubuntu 12.04 Server安装Gerrit

关键词:

算法(第四版)C#题解——2.1,

算法(第四版)C#题解——2.1, 写在前头 全套项目都托管在了 Github上: 那风流洒脱节内容或者会用到的库文件有 ...

详细>>

WebService入门之CXF教程

import javax.jws.WebService; 相关教程: CXF使用Tomcat发布WebService的简单例子http://www.linuxidc.com/Linux/2011-12/49309.htm (3)将解压...

详细>>

在CentOS上安装rvm

本文系统CentOS6.5 x64 如果是Ubuntu系统,先安装编译环境 Ruby On Rails是一个用Ruby语言写的开源Web框架,和J2EE,PHP等类似...

详细>>

《分布式一致性协议raft简介》

3.2.2. 下面为一个 etcd 集群选举过程的简单描述: ➢ 初始状态下集群中的所有节点都处于 follower 状态。 ➢ 某一时刻...

详细>>