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

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

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

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

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

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

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

Jenkins配置代理节点时遇到的坑和解决办法_第1张图片

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

二、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并且配置环境变量即可。

你可能感兴趣的:(jenkins,运维)