我在一个Linux机器上有一个Ant脚本,它在该机器上本地执行一系列任务。我想在其他Linux机器上利用相同的脚本。
有没有办法告诉Ant通过SSH连接到远程linux盒子然后运行一系列任务就好像它在那台服务器上,而不是将Ant脚本复制到远程服务器上?
我知道可以使用sshexec
,但我必须为每个task
执行此操作,最终会成为不同的脚本。
<sshexec host="${remote.host}"
username="${remote.user}"
password="${remote.pass}"
trust="true"
command="rm -rf ${remote.webapps.path}/ROOT*">
答案 0 :(得分:1)
您可以封装在shell脚本中执行的所有步骤,并通过sshexec
您还可以编写一个参数化的ant宏/目标来捕获所有ssh命令。在这种情况下,您需要做的就是使用命令/脚本调用此目标,这样可以减少复制粘贴命令的负担
您始终可以通过参数For ex
传递特定命令<macrodef name="ssexec-wrapper>
<attribute name="exec-command/>
<attribute name="remote.host"/>
##Other variables as required
<sequential>
<sshexec host="@{remote.host} ... command=@{exec-command} failonerror="false|true"/>
</sequential>
</macrodef>