通过Jenkins管道在远程ssh服务器上执行部署脚本

问题描述:

我有一个Jenkins管道包含源加载,通过SSH在远程计算机上构建和部署的阶段。问题是关于最后一个。我救了以下模板的脚本在远程服务器上:通过Jenkins管道在远程ssh服务器上执行部署脚本

#!/bin/bash 
bash /<pathTo>/jboss-cli.sh --command="deploy /<anotherPath>/service.war --force" 

如果连接到远程服务器的终端执行它工作正常。

我已经通过詹金斯收到的最好的结果是

/<pathTo>/jboss-cli.sh: line 87: usr/bin/java/bin/java: No such file or directory

在詹金斯控制台输出

试过bash和SH之间切换时,在管道中的脚本等

任何建议都理解的出口路径的java。 谢谢!

p.s.从詹金斯执行调用看起来像:

sh """ 
ssh -o StrictHostKeyChecking=no $connectionName 'bash /<pathToTheScript>/<scriptName>.sh' 
""" 

line 87: **usr/bin/java/bin/java**: No such file or directory 

按照错误行,它正在考虑从USR没有的/ usr路径。你能检查这是否是问题所在?

对不起,我知道这应该在评论部分,但我没有权利添加评论呢。

+0

所以这个原因是未知的,但我在你的帮助下解决了这个问题。因此,最初,第87行使用了一个变量,例如(也在jboss-cli.sh中)初始化: JAVA =“$ JAVA_HOME/bin/java” 因此,$ JAVA_HOME值与Jenkins不同(为什么?服务器上的终端。 所以我在终端中回显了这个值,并在jboss-cli.sh(/usr/java/jdk1.8.0_121/bin/java)中对其进行了硬编码,如下所示: JAVA =“/ usr/java/jdk1 .8.0_121/bin/java“ 现在在构建正确后重新部署工作。谢谢。仍然感激任何想法的原因:) – Panz0r