У меня есть цель ant, где я успешно использую sshexec-задачу для установки сервера с помощью tomcat в OpenSuse 11.
Моя проблема возникает, когда я пытаюсь запустить скрипт, запускающий только что установленный сервер.Мне нужно сделать это как пользователь 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. Но яне знаю, как и где ...
Итак, чтобы подвести итог этого длинного вопроса вкратце:
Что мне нужно сделать, чтобы иметь возможность запустить мой startup.sh от имени root изправильная папка tomcat / bin с ant-скриптом, который запускается в Jenkins?