繁体   English   中英

当我在Jenkins中使用ant sshexec运行脚本时,如何更改工作目录?

[英]How can I change the working directory when I run a script with ant sshexec in Jenkins?

我有一个ant目标,我成功使用sshexec-task在OpenSuse 11上使用tomcat安装服务器。

当我尝试运行启动新安装的服务器的脚本时出现问题。 我需要以root身份执行此操作,因此我使用以下任务:

<sshexec host="${tss.hostname}"
    username="${username}"
    password="${password}"
    trust="true"
    Command="/usr/local/bin/foo/bar/tomcat/bin/startup.sh"
    failonerror="false"/>

这个问题是我需要从它所在的文件夹运行脚本,因为它从该位置找到CATALINA_HOME和JAVA_HOME。 路径“foo / bar”会随着时间的推移而改变,所以我不想永久地设置它。 我只想将我的跑步路径改为正确的路径。

由于我未能像这样启动服务器,我想调查一下并更改脚本,因此我使用“CommandResource =”cmd.txt“而不是直接命令。我想我可以在开始之前使用它来设置CATALINA_HOME服务器并解决问题的方式。

这是使用cmd.txt时的结果:

  [sshexec] Connecting to foo-bar:22
  [sshexec] cmd : 
  [sshexec] cmd : cd /usr/local/bin/foo/bar/tomcat/bin
  [sshexec] cmd : pwd
  [sshexec] /root
  [sshexec] cmd : echo $PATH
  [sshexec] /usr/java/jdk1.6.0_27/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
  [sshexec] cmd : export CATALINA_HOME=$PATH:/usr/local/bin/tibco/tss/4.5.0/tomcat
  [sshexec] cmd : echo $PATH
  [sshexec] /usr/java/jdk1.6.0_27/bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin

这表明cd和export命令都没有任何效果。

我怀疑我需要更改ssh的权限。 我已经读过,我可能需要更改.ssh / config。 但我不知道怎么样或在哪里......

所以,总结这个长问题:

如果能够使用在Jenkins中运行的ant脚本从正确的tomcat / bin文件夹中以root身份运行我的startup.sh,我需要做什么?

我发现“CD”在同一行上完成时有效...

<sshexec host="${tss.hostname}"
username="${username}"
password="${password}"
trust="true"
Command="(cd /usr/local/bin/foo/bar/tomcat/bin; startup.sh)"
failonerror="false"/>

我实际上并没有使用它来运行shell脚本,但我经常会有ant更改目录,然后运行GIT命令。

是的我也遇到了同样的问题。 cd命令不适用于sshexec。 替代方法是将所有命令放在某个install.sh文件中并将其scp到远程计算机。 然后使用sshexec命令源在远程计算机上执行此文件。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM