簡體   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