我需要为多台服务器创建 Ant 构建的建议。我有大约 25 台服务器。如果可能的话,我想通过运行一次 ant 来为所有服务器实现部署战争文件。我有以下问题需要考虑
- 并非所有服务器的配置参数都相同。
- 一些配置参数我必须设置部署应用程序的服务器主机 ip。有 25
台服务器,想要一些关于如何处理这个问题的建议。
我需要为多台服务器创建 Ant 构建的建议。我有大约 25 台服务器。如果可能的话,我想通过运行一次 ant 来为所有服务器实现部署战争文件。我有以下问题需要考虑
我有同样的目标。
您可以编写一个 Maven 脚本,以便在Jayan提到的 Jenkins 上设置持续集成
或者您可以像您提到的那样创建一个 ANT 脚本。
<!-- Define custom properties -->
<property name="build.dir" location="${basedir}/target" />
<property name="host.dev" value="YOUR IP" />
<property name="host.live" value="YOUR IP 2" />
<property name="ssh.timeout" value="60000" />
<property name="username.dev" value="username" />
<property name="username.live" value="username 2" />
<property name="password.dev" value="password" />
<property name="password.live" value="password 2" />
创建您自己的 ssh macrodef 任务以使用 ssh 命令:
<!-- Define ssh commands sshexec -->
<macrodef name="ssh_cmd">
<attribute name="host" />
<attribute name="command" />
<attribute name="usepty" default="false" />
<attribute name="username" />
<attribute name="password" />
<sequential>
<echo>Executing command : @{command} on @{username}@@@{host}</echo>
<sshexec host="@{host}" failonerror="true" username="@{username}" password="@{password}" timeout="${ssh.timeout}" command="@{command}" usepty="@{usepty}" trust="true" />
</sequential>
</macrodef>
向您的服务器发送命令,例如:
<ssh_cmd host="${host.dev}" command="YOUR COMMAND (ex: sudo start yourservice onlinux)" username="${username.dev}" password="${password.dev}"/>
不要忘记使用以下内容导入 sshexec / scp ant 任务:
<property environment="env" />
<taskdef resource="net/jtools/classloadertask/antlib.xml">
<classpath>
<fileset dir="${ant.home}/lib" includes="ant-classloader*.jar" />
</classpath>
</taskdef>