Jenkins Gerrit Trigger插件配置

安装Jenkins

以Jenkins 2.361.1版本为例

docker pull jenkins/jenkins:2.361.1

运行容器,将主机的8080端口映射到容器的8080端口,同时将主机的50000端口映射到容器的50000端口(用于构建代理)

docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins:2.361.1

在浏览器中访问 http://127.0.0.1:8080,最后安装推荐的配置即可

安装Gerrit Trigger插件

安装插件

进入Dashboard–>系统管理–>插件管理,搜索Gerrit Trigger并安装

在这里插入图片描述
安装后访问 http://127.0.0.1:8080/restart 重启Jenkins

管理员登录Gerrit,进入Projects->List->All-Projects->Projects->Access

在Global Capabilities->Stream Events 点击 Non-Interactive Users
在这里插入图片描述

添加用户到 ‘Non-Interactive Users’ 组
在这里插入图片描述

进入Jenkins容器生成ssh密钥

ssh-keygen -m PEM -t rsa -b 4096 -C "test@qq.com"

将密钥配置到Gerrit
在这里插入图片描述

进入Dashboard–>系统管理–>Gerrit Trigger配置
在这里插入图片描述
配置选项介绍

  • Name:配置名,可任意填
  • Hostname:Gerrit服务器ip
  • Frontend URL:Gerrit前端网页地址
  • SSH Port:Gerrit ssh端口
  • Username:Gerrit用户名
  • E-mail:Gerrit邮箱
  • SSH Keyfile:Jenkins容器中,ssh密钥路径
    在这里插入图片描述
    在这里插入图片描述

注意:
如果Gerrit和Jenkins容器部署在同一台宿主机,Jenkins容器内部可以通过docker ip来访问Gerrit容器
容器ip获取方式:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器ID或名称>

最后点击测试
在这里插入图片描述

可能出现的异常以及解决方案:

1.报错 com.jcraft.jsch.JSchException: Auth fail…

解决方法:
下载jsch插件
https://updates.jenkins-ci.org/download/plugins/
在这里插入图片描述

Jenkins 2.361.1是下载0.1.55.61.va_e9ee26616e7这个版本解决的
在这里插入图片描述

进入Dashboard–>系统管理–>插件管理安装–>高级,安装下载好的hpi文件,最后点击Deploy并重启Jenkins
在这里插入图片描述
参考:https://blog.csdn.net/yudelian/article/details/105146887

2.报错无法识别ssh key的错误

原因:可能是生成key的时候使用ssh-keygen -t rsa命令,默认是以新的格式生成,id_rsa的第一行变成了“BEGIN OPENSSH PRIVATE KEY” 而不在是“BEGIN RSA PRIVATE KEY”,此时用来msyql、MongoDB,配置ssh登陆的话,可能会报 “Resource temporarily unavailable. Authentication by key (/Users/youname/.ssh/id_rsa) failed (Error -16). (Error #35)” 提示资源不可用,这就是id_rsa 格式不对造成的

解决方法:
使用 ssh-keygen -m PEM -t rsa -b 4096 来生成

-m 参数指定密钥的格式,PEM(也就是RSA格式)是之前使用的旧格式
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密语;
-P:提供(旧)密语;
-q:静默模式;
-t:指定要创建的密钥类型

参考:https://blog.csdn.net/tanshizhen119/article/details/111998309

3.报错User jenkins has no capability to connect to Gerrit event stream

原因: Jenkins 没有权限监听 Gerrit 的 ‘Stream Events’

解决方案:
管理员登录gerrit,进入Projects->List->All-Projects->Projects->Access

在Global Capabilities->Stream Events 点击 Non-Interactive Users
在这里插入图片描述

添加用户到 ‘Non-Interactive Users’ 组
在这里插入图片描述

4.安装jsch插件之后,以前配置的job一启动就结束

原因:可能是下载的jsch插件和Jenkins不兼容

解决方法:
下载jsch插件
https://updates.jenkins-ci.org/download/plugins/
在这里插入图片描述

Jenkins 2.361.1是下载0.1.55.61.va_e9ee26616e7这个版本解决的
在这里插入图片描述

进入Dashboard–>系统管理–>插件管理安装–>高级,安装下载好的hpi文件,最后点击Deploy并重启Jenkins
在这里插入图片描述

测试插件

创建一个job,以流水线job为例

勾选触发器,选择自己配置好的Gerrit trigger服务
在这里插入图片描述
配置要监听的仓库和分支
在这里插入图片描述
编写流水线脚本内容并保存
在这里插入图片描述
在Gerrit上传一个patch
在这里插入图片描述
Jenkins监听到触发事件并执行
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值