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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

### Jenkins 从节点配置与管理教程 #### 创建配置从节点 进入 Manage Jenkins à Manage Nodes and Clouds,新建节点 (主机 A)[^1]。在此过程中,需填写新节点名称并选择永久代理选项。之后,在远程根目录设置中定义用于存储工作空间的位置。 对于连接方式的选择,推荐采用 JNLP 或 SSH 方式来建立 Master Slave 节点间的通信链路。如果选用后者,则需要提前部署 jenkins 用户公钥至目标机器上[^2],以便实现无密码登录验证过程自动化处理。 完成上述操作后保存更改即可成功添加新的构建节点到集群环境中去。此应当能够看到新增加的实例出现在列表之中等待进一步的任务分配安排。 #### 故障排查指南 当遇到类似 `Failed to start Jenkins Continuous Integration Server` 的错误提示,可能的原因包括但不限于: - Java 环境变量未正确设定 - 文件权限不足影响程序正常运行 - 存储路径不可写入造成初始化失败等问题 针对这些问题可以采取相应措施加以解决,比如确认 JAVA_HOME 是否指向有效的 JDK 安装位置;调整相关文件夹访问控制属性使之满足最低需求;以及检查磁盘剩余空间状况确保有足够的可用容量供应用使用等方法尝试修复该类异常情况的发生[^3]。 #### 实现高效资源利用的最佳实践建议 为了提高整体效率降低维护成本,合理规划多分支系统的持续集成流程至关重要。借助于 Jenkins 提供的强大分布式部署能力,只需在一个中心化的 master 上做好基础环境搭建服务参数调优工作,再配合灵活指派 slave 来执行特定平台上的编译打包任务就能轻松应对复杂场景下的多样化需求而不必重复劳动浪费宝贵间精力了[^4]。 ```bash ssh-copy-id -i ~/.ssh/id_rsa.pub user@slave-node-ip ``` 此命令可用于将本地用户的 RSA 密钥复制到远端服务器从而简化后续的身份鉴别环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值