一、问题描述
今天一个自动化的Jenkins任务,编译完后使用ssh连接另外的主机来执行自动化脚本的时候出错了,报错如下所示:
在这里插入图片描述BUILD SUCCESSFUL in 6m 37s
578 actionable tasks: 561 executed, 17 up-to-date
Build step 'Invoke Gradle script' changed build result to SUCCESS
[SSH] executing post build script:
=""
bash: =: command not found
[SSH] exit-status: 127
SSH: Current build result is [FAILURE], not going to run.
Jenkins上这个自动化脚本的配置如下所示:
在这里插入图片描述这个问题分析了很久,一直找不到原因,屡次编译失败。
在这里插入图片描述二、解决问题
2.1 google答案未果
搜遍了google,只看到
http://jenkins-ci.361315.n4.nabble.com/Junit-quot-bash-command-not-found-quot-td4688883.html
有一个类似的问题,但是只有问题描述,没有解决方案。
在这里插入图片描述2.2 自己分析解决
1、我得确认这台服务器是不是有问题,是不是连接不上?
我在XShell客户端,通过ssh命令是可以连接到这台服务器的,说明这台服务器是正常的。
在这里插入图片描述
2.3 怀疑是Jenkins的【Publish Over SSH】插件问题
发现Jenkins上的【Publish Over SSH】插件 版本很老了。
在这里插入图片描述
Jenkins平台本身版本也比较老了
在这里插入图片描述
但是由于所有软件的同事都用同一个Jenkins,我可不敢为了一个小的Jenkins自动化任务而去直接升级,到时候导致其他人不可用,就悲剧了。
关于升级插件的方案暂时搁置,因为我发现有其他人也使用了【Publish Over SSH】插件,但是是在另外一个编译节点编译,且SSH到另外一台服务器的,别人是正常使用的。
因此有可能只是 Jenkins编译节点和这台测试服务器之间出现了问题。
2.4 怀疑是Jenkins编译节点的问题
2.4.1 分析Jenkins编译节点
我最终怀疑,是不是这个Jenkins编译节点出现了问题。
在这里插入图片描述这个Jenkins自动化测试任务,在 【Android_Phone_Server】这台Jenkins节点服务器上进行编译的,而在这个错误发生之前,我确实在这台节点服务器上做了一些操作,但是确实没有动这台服务器的ssh方面的。而且在问题发生之后,用Xshell客户端确实可以ssh连接上。
我突然想起了下面这条道理:
几乎没有什么问题是重启解决不了的。
好吧,是在没辙了,我从Jenkins上断开这个Jenkins节点服务器,然后重新连接试一试。
2.4.2 重连Jenkins编译节点
重新断开节点服务器,然后重新连接
在这里插入图片描述
2.4.3 重新run自动化Jenkins任务
然后重新开始这个自动化Jenkins任务,尝试一下。
第318次编译,终于成功了!大功告成!
在这里插入图片描述
编译成功的日志
在这里插入图片描述
三、总结
应该是由于我在Jenkins节点服务器上做了某些我不记得的操作,导致Jenkins平台上的信息和Jenkins节点服务器上的信息不同步了,导致使用Jenkins来操作ssh失效。
最终通过重启Jenkins节点服务器的操作来同步信息,这样就可以正常操作ssh了。
image
image作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:https://blog.csdn.net/qq446282412/article/details/83856439
如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。
网友评论