一、Jenkins部署步骤
1、安装jenkins
(1)CentOS7下采用rpm包安装:
wget https://pkg.jenkins.io/redhat/jenkins-2.156-1.1.noarch.rpm
(2)rpm -ivh jenkins-2.156-1.1.noarch.rpm
2、配置端口:vim /etc/sysconfig/jenkins
#监听端口
JENKINS_PORT=“8080”
3、启动:sudo service jenkins restart
ps -ef | grep jenkins
4、访问web 端Jenkins访问地址是: http://192.168.201.237:8080/
5、需要启动tomcat,
6、获取登录密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
7、为Jenkins新建用户:
登入jenkins管理
首先选择系统管理选项
选择管理用户选项
选择新建用户,接着填入用户信息即可
8、安装相关插件:点击插件安装选择推荐插件:
9、登录Jenkins,系统管理->管理插件 中,下载Git Plugin 和ssh plugin.
10、自动触发 Jenkins Verified, 默认是不自动触发 Jenkins 构建的,
需要配置 REST API 的配置,在 Enable Verifed 选项上打钩后保存,即可让Jenkins自 动 触发 Verifed
11、从Gerrit生成HTTP密码,并填写到Jenkins上
二、gerrit部署步骤,CentOS系统下Gerrit服务器搭建
1、安装apache: yum install httpd
2、启动:systemctl start httpd
3、查看启动状态:
4、下载gerrit安装包:gerrit-2.12.2.war
5、定位到存放gerrit.war的目录下,然后输入命令:java -jar gerrit-2.12.2.war init -d review_site
6、紧接着会让你一步步配置gerrit:
[root@localhost ~]# cd /usr/local/gerrit/
[root@localhost gerrit]# java -jar gerrit.war init -d review_site
*** Gerrit Code Review 2.10
Create ‘/usr/local/gerrit/review_site’ [Y/n]? y
*** Git Repositories
Location of Git repositories [git]: //git放的目录,没有的话自己会创建的
*** SQL Database
Database server type [h2]: //我用的默认H2数据库,也可以输入mysql然后回车,这样你用的就是mysql数据库了
*** Index
Type [LUCENE/?]:
*** User Authentication
Authentication method [OPENID/?]: HTTP //输入HTTP,不然就不是反向代理了
Get username from custom HTTP header [y/N]? n
SSO logout URL :
*** Review Labels
Install Verified label [y/N]?
*** Email Delivery
SMTP server hostname [localhost]: smtp.163.com //输入自动发送邮件的邮箱smtp
SMTP server port [(default)]: 25 // 465/994是SSL协议端口号,25是非SSL协议端口 号(这里指的163邮箱)
SMTP encryption [NONE/?]: //如果上一步输入的是465/994,此处输入SSL,否则直 接回车
SMTP username [root]: gaochujia@163.com //此处是你自动发送邮件的邮箱
gaochujia@163.com’s password :
confirm password : //此处是你邮箱的授权码,非邮箱密码(切记,不然邮件发不出 去)
*** Container Process
Run as [root]: //这是用户,可以用默认root
Java runtime [/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64/jre]:
Copy gerrit.war to /usr/local/gerrit/review_site/bin/gerrit.war [Y/n]? Y
Copying gerrit.war to /usr/local/gerrit/review_site/bin/gerrit.war
*** SSH Daemon
Listen on address [*]:
Listen on port [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto SSL v149
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]? y
Downloading http://www.bouncycastle.org/download/bcpkix-jdk15on-149.jar … !! FAIL !!
error: http://www.bouncycastle.org/download/bcpkix-jdk15on-149.jar: 302 Found
Please download:
http://www.bouncycastle.org/download/bcpkix-jdk15on-149.jar
and save as:
/usr/local/gerrit/review_site/lib/bcpkix-jdk15on-149.jar
Press enter to continue
Continue without this library [Y/n]?
Generating SSH host key … rsa(simple)… done
*** HTTP Daemon
Behind reverse proxy [y/N]? y
Proxy uses SSL (https://) [y/N]? n
Subdirectory on proxy server [/]:
Listen on address [*]:
Listen on port [8081]: 8091 //这个端口号一定不要和apache的端口号一样
Canonical URL [http://localhost/]:
*** Plugins
Install plugin commit-message-length-validator version v2.10 [y/N]? y
Install plugin download-commands version v2.10 [y/N]? y
Install plugin replication version v2.10 [y/N]? y
Install plugin reviewnotes version v2.10 [y/N]? y
Install plugin singleusergroup version v2.10 [y/N]? y
Initialized /usr/local/gerrit/review_site
Executing /usr/local/gerrit/review_site/bin/gerrit.sh start
Starting Gerrit Code Review: FAILED
error: cannot start Gerrit: exit status 1
Waiting for server on localhost:80 … OK
Opening http://localhost/#/admin/projects/ …OK
[root@localhost gerrit]#
7、创建创建passwd文件,添加gerrit登录用户(-c参数为创建,仅限第一次添加用户 时使用)
第二次添加其他用户时,不要加-c:htpasswd -b /etc/httpd/passwords test test
8、修改Apache的config文件httpd.conf: vim /etc/httpd/conf/httpd.conf
To modify the ipaddress and port
9、配置/etc/httpd/conf/httpd.conf ip和端口:
10、配置/home/gerrit/gerriit_site/etc/gerrit_config
11、如果安装Gerrit时没有或者没有选择添加Verified标签功能[‘lable Verified’],需 要自己添加,进入 Gerrit 的 All-Projects 项目,点击 Edit config 按钮
在最下方写入(ps:必须用谷歌浏览器):
[label “Verified”]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 Verified
defaultValue = 0
12、配置完成后,web端输入账户和密码admin:admin进行登录,我的登录界面如下图:
三、配置Jenkins和gerrit进行集成测试连接
点击Test Connection进行测试连接,出现success代表Jenkins和gerrit连接成功
四、配置gerrit和gitlab进行同步
1、首先配置 Gerrit ,先关闭 Gerrit Server:./gerrit/review_site/bin/gerrit.sh stop
2、在安装时已经默认安装了 Gerrit 的 Replication Plugin,这里直接对项目进行关联配 置:vim gerrit/review_site/etc/replication.config配置如下图:
若同步成功后可以进入log目录查看同步log,出现如下图所示log代表,gerrit同步到远程 仓库同步成功,vim /home/gerrit/gerrit_site/logs/replication_log
3、若安装Gerrit 的时候没有安装Replication Plugin插件,可以手动安装:
java -jar gerrit-2.12.2 init -d gerrit_site --batch --install-plugin replication
查看plugins目录,发现已经有插件了,如下图:
4、查看replication当前启动状态:ssh -p 29418 admin@192.168.201.237 gerrit plugin ls |grep replication
5、配置gerrit能免密ssh登录远程仓库所在的服务器
(1)Gerrit客户端生成公私钥:ssh-keygen
(2)上传公钥到服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub niuben@192.168.201.237
(3)测试免密登录:ssh niuben@192.168.201.237
五、配置jenkins集成Gerrit构建
1、源码管理配置
2、构建触发器
3、构建脚本
六、Gerrit上添加新建用户组,以及配置用户组成员相关权限
https://lipeng1667.github.io/2017/01/18/gerrit-guide/ 1、新建test_user用户组
2、新建一个项目,点击Project,然后Create New Project,点击project名称,进入到工程的详细设置界面,配置这个项目的权限
七、gerrit merge的时候触发 Jenkins打包构建
1、Gerrit Trigger:如下图
2、打包bin文件脚本
八、指定用户名和邮箱,code review配置
1、用户名和邮箱配置:
创建passwd文件,添加gerrit登录用户:htpasswd -b /etc/httpd/passwords test test
用添加的gerrit的登录用户名和密码 登录http://192.168.201.237:8090/
然后如下图所示给指定的用户注册邮箱
将需要注册的邮箱填写进去,然后选择save changes
注册好后必须要先发个邮件给中心邮件服务器:gerrit@centos.localdomain
收到系统退件后再注册邮箱(必须要这样做要不然注册不成功)
自己的邮箱注册后,git提交代码到Gerrit的时候就会有邮件提示消息如下图:
2、需要退出账号时的操作:
gerrit退出admin账号重新登陆(HTTP认证模式不支持Sign Out,需要先Sign Out 退出账号,关闭浏览器后再登陆才能出现http验证密码的对话框
3、code review权限配置
往test_user用户组里添加用户
![在这里插入图片描述]()
九、多分支配置
1、jenkins的源码管理里添加分支
2、Gerrit Trigger触发里添加分支
3、修改提交的时候,指定要提交的分支
git push origin HEAD:refs/for/niuben
十、多平台配置
1、登录Jenkins选择Jenkins新建任务如下图所示: