У меня проблемы с sshsession Ant задача.Выполнение удаленных команд с помощью sshsession Ant task
Я пишу сценарий развертывания, который создает источники bzip, архивирует архив на удаленный сервер, а затем распакует источники на удаленном сервере и копирует файлы в нужное дерево каталогов.
(...)
<bzip2 src="/tmp/${selected.target}.tar" destfile="/tmp/${selected.target}.tar.bz2"/>
<scp file="/tmp/${selected.target}.tar.bz2" todir="[email protected]:/tmp/" keyfile="${user.home}/.ssh/id_rsa" trust="yes" passphrase="thisisasecret"/>
<sshsession host="server" username="user" keyfile="${user.home}/.ssh/id_rsa" trust="yes">
<sequential>
<untar src="/tmp/${selected.target}.tar.bz2" dest="/tmp/prova_untar" compression="bzip2"/>
(copy files)
</sequential>
</sshsession>
(...)
Проблема с задачами, указанными внутри sshsession, поскольку они выполняются локально, а не на удаленном сервере. Я подумал (но ясно, что я ошибаюсь), что команда, указанная в теге sshsession, будет выполняться на сервере, к которому я только что подключен. Я прочитал в документации, что вы можете указать туннели с localtunnel и remotetunnel, но я не уверен, что правильно понимаю, для чего предназначены эти туннели. Кто-нибудь сталкивался с той же проблемой или имел решение для этого? Версия Ant, с которой я работаю, - 1.8.2. Спасибо,
Alberto
я думаю, вам нужно использовать [sshexec] (https://ant.apache.org/manual/Tasks/sshexec.html). sshsession, похоже, для туннелирования соединений, а не для выполнения повторной передачи. – oers
Спасибо. Я выбрал sshsession, потому что мне нужно выполнить список удаленных команд, и sshexec просто открывает новый сеанс каждый раз. – geezmo
У нас есть аналогичная ситуация - выполнить список удаленных команд, и мы делаем это, чтобы написать «remote-build.xml» и скопировать его вместе с другими файлами на удаленную машину. Конечно, мы должны установить муравей в удаленную машину, но я думаю, что это нормально. – coolcfan