Git+gerrit+jenkins安装配置

来源:互联网 发布:断网软件下载 编辑:程序博客网 时间:2024/05/21 06:21

Gerrit与git无缝衔接,向服务器提交评审,仅需将git push 改成 git review(或git push origin HEAD:refs/for/master)。Gerrit完美的支持审核模式,评审完成后,可以在界面上一键提交代码到主分支上。

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,拥有丰富的插件——本文重点介绍Gerrit Trigger配置。

本文详细介绍Gerrit和Jenkins(包括Gerrit Trigger插件)的安装配置。


前置条件

已经安装好了openjdk, mysql(可选)。

测试方法:

tecs@tecs-gerrit:~$ java -version

java version "1.7.0_91"

OpenJDK Runtime Environment (IcedTea 2.6.3)(7u91-2.6.3-0ubuntu0.15.04.1)

OpenJDK 64-Bit Server VM (build 24.91-b01, mixedmode)

gerrit@tecs-gerrit:~$ sudo systemctl status mysql

mysql.service -LSB: Start and stop the mysql database server daemon

Loaded:loaded (/etc/init.d/mysql)

Active: active (running)since Tue 2016-01-19 10:39:37 CST;6h ago


安装:

Ubuntu/debian:

sudo apt-getintall openjdk-7-jre

sudo apt-getinstall mariadb-server

Redhat/Centos:

sudo yum installjava-1.7.0-openjdk

sudo yum install MariaDB-server MariaDB-client


Gerrit安装步骤

准备数据库(mysql/mariadb)

以管理员身份登录,创建gerrit专用的数据库和账号

数据库在本机,执行下面命令即可。如果不是,请将命令中的”localhost”改成”%”,代表任意主机:

CREATE USER gerrit@”localhost” identified by “password”;

CREATE DATABASE gerrit;

GRANT ALL  ONTABLE gerrit.* to gerrit;


创建gerrit专用账户, 并将下载好的安装包拷贝到该用户目录,并换到该用户,创建安装目录”site”。

注:后续“site”都是指gerrit的安装目录。

sudo useradd gerrit –m

sudo mv Downloads/gerrit-2.11.war /home/gerrit/

sudo chown gerrit:gerrit/home/gerrit/gerrit-2.11.war

sudo su – gerrit

mkdir site

cd site


开始安装

java –jar ../gerrit-2.11.war init

通过回答问题来完成安装,”?”可以列出所有选项。

可以通过再次执行上述命令来改变配置文件或直接编辑,认证选项可以先选择“development_become_any_account”,完成基础帐号设置后,再改成需要的模式。数据库的模式,安装好后就不要改变——改变需要同步移植库中的数据。

需要执行下面命令,不然可能会启动失败:

java –jar ../gerrit-2.11.war reindex

启动

bin/gerrit.sh start

如果失败了,请查看 logs/error_log,或监视log:

tail –f logs/erro_log

安装过程中会下载下面三个文件,也可以手工下载并拷贝到site/lib目录中:

bcpkix-jdk15on-151.jar——可以在以后添加到site/lib

bcprov-jdk15on-151.jar——可以在以后添加到site/lib

mysql-connector-java-5.1.21.jar——可以在以后添加到site/lib,使用mysql时必须安装

 

将gerrit安装成系统服务

sudo cp /home/gerrit/site/bin/gerrit.sh/etc/init.d/gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc0.d/K01gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc1.d/K01gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc6.d/K01gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc2.d/S02gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc3.d/S02gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc4.d/S02gerrit

sudo ln –sf /etc/init.d/gerrit /etc/rc5.d/S02gerrit


使用编辑器打开/etc/init.d/gerrit ,将下面红色框内的三行前的注释去掉:可以与一般服务相同,使用systemctl命令管理gerrit服务了



Jenkins安装

Jenkins安装

下载地址: http://jenkins-ci.org/

Centos:

rpm –ivh jenkins-1.643-1.1.noarch.rpm

配置文件:/etc/sysconfig/Jenkins

 

Unbuntu:

dpkg –i jenkins_1.643_all.deb

配置文件: /etc/default/Jenkins

 

重要的配置项:

服务端口:HTTP_PORT=8082

工作目录:JENKINS_HOME=/var/lib/$NAME

生成rsa密钥对, 一般使用jenkins的帐号,默认位置:var/lib/jenkins/.ssh。在生成时如果输入了密码,在后续配置时也需要相同的密码。

sudo su – jenkins

ssh-keygen


Gerrit Trigger与 git plugin 插件安装

可以通过jenkins自带的插件管理自动从网上下载安装: Gerrit Trigger 和git plugin.


另一种安装方式,手工下载并安装:http://updates.jenkins-ci.org/download/plugins

需要下载的插件清单:



以上就完成了Gerrit与Jenkins安装。

下面介绍如何配置。


Gerrit配置

Jenkins创建非交互帐号

打开主界面,点击右上角的“become”,界面如下,先不要选择选择”administrator”帐号(安装时,认证方式选择”development_become_any_account”时提示创建的帐号)。选择“New Account”, 创建一个交互式帐号。


根据界面提示,将下面三处内容填写完整,ssh从jenkins帐号下的目录下的.ssh/id_rsa.pub中拷贝到下面框中。


完成后如下, 此填写的信息将会用在GerritTrigger的插件配置中。

 

从右上角切换到管理员帐号,选择“非交互式用户组”,如下图


将Jenkins_Test帐号加入到“非交互式用户组”

确保”Non-Ineractive Usres”组有读取的权限和”Stream Events”的权限。”AnonymousUsers”包含所有的用户。使用默认配置就可以了。

 

创建一个项目用于测试

 

ldap认证方式配置

[auth]

        type = LDAP

[ldap]

  server = ldap://认证服务器地址:389

  sslVerify = false

  username = 连接认证服务器的帐号(完整的DN)

  password = 连接认证服务器的密码

  accountPattern = 服务器中用户名的字段名(例如:sAMAccountName)=${username}

   accountBase = 服务器中用户的地址(例如:DC=zte,DC=com,DC=cn)

   accountFullName = 在gerrit 服务器上显示的名字(例如:${givenName}${SN} ,givename,SN都是用户相关的字段名


Jenkins上的配置Gerrit服务器

“系统管理”的下半部分找到”Gerrit Trigger”如下图。

点击“Add New Server”


填好服务器名,第一个使用默认配置,再次添加时可以从其它复制。

将Gerrit服务信息,以及之前创建的账号信息填写好,并点击测试链接按钮,显示成功,如下图。

“Frontend URL”,用生成访问gerrit评审的链接。

“SSH Keyfile”使用之前设置在账号中公钥对应的私钥。

“SSH Keyfile password”填写创建秘钥对时输入的密码。


Jenkins 上创建任务

Git更新代码配置

使用ssh,并创建ssh认证。

展开高级选项:Refspec字段:refs/changes/*:refs/changes/*

Branch Specifier:$GERRIT_REFSPEC



填写 Gerrit触发条件

Trigger On 没有填写时,会自动添加下面两种类型人事件:”Patchset Created”和“Drafpublished”

选择要构建人项目和分支

如果创建服务器时,没有选择创建 Verified 标签,就需要将下面这些命令(展开高级选项)中的—verified <VERIFIED> 删除,不然Gerrit服务器上不能正确处理jenins的回复。


提交评审进行测试

提交一个评审意见

1.先 clone 代码,并直接提交一个初始版本

git clone http://10.43.174.203:8081/train&& scp -p -P 29418 admin@10.43.174.203:hooks/commit-msgtrain/.git/hooks/

cd train

touch test.c

git add test.c

git commit –m “add file for test”

git push

2.再次编辑文件,提交评审

git commit –am “add include”

git push origin HEAD:refs/for/master


####################################################

转载至:https://sanwen8.cn/p/10cr86Z.html

0 0
原创粉丝点击