Jenkins配置代理节点时遇到的坑和解决办法

本文记录了将开会用笔记本作为Jenkins代理节点时遇到的配置问题及解决办法。包括mvn不是内部或外部命令、Agent无法连接到主机、通过插件发送文件执行命令报错、SonarQube Scanner未找到等问题,详细介绍了各问题的原因和对应的解决措施。

需求:服务器太满了,需要找个比较空闲的机器分担一下,看上了同网络的某开会用的笔记本,把这个本本利用起来能跑一个算一个。

但配置起来并不容易,遇到的问题有些网上也几乎找不到答案。这里记录一下能救一个是一个:

一、mvn不是内部或外部命令:

一直以为代理节点就是提供一个算力,没想到所有的配置都要重新弄一遍(除了不用搭建Jenkins)。Jenkins主节点理论上就是发命令到代理节点上,命令里面如何有配置参数什么的,都会优先使用主节点上的配置,所以很容易命令就跑不下去了,这里有两个解决办法:

1、安装和配置完全弄成跟主节点的一模一样,配置里面的路径、参数名等都弄成一模一样。当然这个是比较傻的解决方案。

2、利用节点的特殊配置,在下面这里找到:

可以配置节点特殊的路径,或者环境变量等。

二、Agent无法连接到主机:

一开始用“中文”来给节点命名,怎么都连不上,后来改成英文就可以了。

三、通过Send files or execute commands over SSH插件发送文件到远程服务器且执行命令时报错:ERROR: Exception when publishing, exception message [argument "outputFile" is null]

并且Agent的运行日志里会打印:

Exception when publishing, exception message [argument "outputFile" is null]

原因是我之前手贱在system的全局配置里面勾选了下面这个(Avoid sending files that have not changed):

去掉勾选就没问题了。

猜测可能是环境和路径不一致,导致先去匹配文件是否有被修改过时出错。不过不管怎样,这个配置会导致节点失败是怎么都想不到的。

四、SonarQube Scanner executable was not found for Local SonarQube

如果用maven配合sonarQube,在mvn中使用sonar:sonar参数它会自己安装sonar的插件,不需要安装SonarQube Scanner也是可以运行的。

但如果针对非JAVA,比如前端、c++等,那还是需要Scanner(但不需要SonarQube平台)。跟主节点一样,解压SonarQube Scanner并且配置环境变量即可。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值