【问题标题】:Execution a deployment script on a remote ssh server through a Jenkins pipeline通过 Jenkins 管道在远程 ssh 服务器上执行部署脚本
【发布时间】:2018-01-23 09:12:59
【问题描述】:

我有一个 Jenkins 管道,其中包含通过 SSH 在远程机器上进行源代码加载、构建和部署的阶段。问题是关于最后一个。我在远程服务器上保存了以下模板的脚本:

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

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

我通过 Jenkins 得到的最好结果是

/&lt;pathTo&gt;/jboss-cli.sh: line 87: usr/bin/java/bin/java: No such file or directory

在 Jenkins 控制台输出中。

尝试在 bash 和 sh 之间切换,在管道脚本中将路径导出到 java 等。

感谢任何建议。 谢谢!

附言来自 Jenkins 的执行调用如下所示:

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

【问题讨论】:

    标签: jenkins ssh


    【解决方案1】:
    line 87: **usr/bin/java/bin/java**: No such file or directory
    

    根据错误行,它正在考虑来自 usr 而不是 /usr 的路径。你能检查一下这是否是问题所在吗?

    抱歉,我知道这应该在 cmets 部分,但我还没有添加 cmets 的权限。

    【讨论】:

    • 所以原因不明,但我在您的帮助下解决了这个问题。所以最初,第 87 行使用了一个变量,初始化例如(也在 jboss-cli.sh 中): JAVA="$JAVA_HOME/bin/java" 因此,通过 Jenkins 和终端,$JAVA_HOME 值是不同的(为什么?)在服务器上。因此,我在终端中回显了该值并将其硬编码在 jboss-cli.sh (/usr/java/jdk1.8.0_121/bin/java) 中,如下所示: JAVA="/usr/java/jdk1.8.0 _121/bin/java" 现在在正确构建后重新部署工作。谢谢你。仍然感谢任何关于原因的想法:)
    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    相关资源
    最近更新 更多