- Call target from pom.xml
1
2
3
4
5
6
7
<configuration>
<target>
<ant antfile="${basedir}/build.xml">
<target name="deploy" />
</ant>
</target>
</configuration>
- Setup profile and add servers for that environment
1
2
3
4
5
6
7
8
9
10
<profile>
<id>dev</id>
<properties>
<classifier.type>DEV</classifier.type>
<server1.hostname>server1</server1.hostname>
<server2.hostname>server2</server2.hostname>
<server3.hostname>server3</server3.hostname>
<server4.hostname>server4</server4.hostname>
</properties>
</profile>
- Ant sort server host names to list
1
<propertyselector property="hostnames" match="server([^\.]*)\.hostname"/>
- Ant Loop command
1
2
<for list="${sorted.hostnames}" param="hostname">
</for>
- Ant if else condition
1
2
3
4
5
6
7
8
9
<if>
<equals arg1="${stop.server}" arg2="true" />
<then>
....
</then>
<else>
....
</else>
</if>
- Ant ssh and execute commands on remote
1
2
3
4
5
6
7
<sshexec
host="${node}"
username="${windows.username}"
password="${windows.password}"
command="cd /tmp/vagrant;
sudo chef-solo -c solo.rb -j app_node.json -E ${@{hostname}}"
trust="true" />