AIX系统下运行ant发布更新WPS,WAS应用,以及Cluster的情况下
如需转载,请标明出处,尊重作者权利,
http://www.chinacsharp.net
http://blog.csdn.net/keyboardsun author:keyboardsun@163.com
现在我们的应用系统在修改代码过后用ant打包,打包完了要求自动更新到服务器,一个是普通的单个服务器,另外一个是集群。情景模式如下。
一台IBM P550 IP:10.9.132.250 host:P550_250 节点是NODE1 server为server1
一个集群:IP:10.9.132.248 host:P550_248 Cluster:WPSCluster 包括两个节点QB125Node01,QB126Node01,两个节点各有两个server,分别为WPS001,WPS002
下面我们来设计:
首先我们得在ant的xml里面写上调用ksh脚本的代码吧。
然后在.sh脚本代码里面运行wsadmin,然后调用jacl文件完成发布。
好的,现在我们来设计xml,设计之前我来告诉大家几个秘密:
第一:对于cluster,安装的时候有参数的,可以安装发布到cluster,但是停止的时候得每个server一个一个的停,启动的时候也是,但是呢,在卸载的时候,只需卸载一个server的就可以了,不用每个server都卸载
第二:安装cluster的应用的时候,安装完成直接启动会报错,因为应用其实还没有完全发布到每个server,这里需要等待一段时间过后再启动。
这里我们的文件如下
Build.xml , 用于调用deploy.xml代码
deploy.xml, 用于执行deploy.sh代码
deploy.sh用于执行jacl代码
uwfe248.jacl 用于安装更新P550_248机器应用
uwfe250.jacl 用于安装更新P550_250机器应用
uwfe_startapp.jacl 用于在cluster安装完成以后启动应用
startApp248.jacl用于启动cluster发布的应用
下面我们来设计xml。
我们build.xml的吧
<?xml version="1.0" encoding="UTF-8"?>
<project name="UWFE4_WPS_ALL" default="all" basedir=".">
<target name="all" >
……..这里省略编译java,打包ear的代码…..
<ant antfile="${HOME}/antbuild/deploy.xml" inheritAll="false" target="deploy"/>
</target>
</project>
这里的deploy.xml就是调用sh脚本的啦。
这里脚本在后面有sleep 60秒,然后再启动应用的
<?xml version="1.0" encoding="UTF-8"?>
<project name="UWFE4_WPS_ALL" default="deploy" basedir=".">
<target name="startApp" >
<exec executable="/bin/ksh">
<arg line="deployapp.sh"/>
</exec>
</target>
<target name="deploy" depends="startApp">
<echo message="begin"/>
<sleep seconds="60"/>
<echo message="end"/>
<exec executable="/bin/ksh">
<arg line="deploy_startapp.sh"/>
</exec>
</target>
</project>
Deploy.sh的代码为
/usr/IBM/WebSphere/ProcServer/bin/wsadmin.sh -conntype SOAP -host QB_WMS_P550_125 -port 8879 -f UWFE248.jacl
/usr/IBM/WebSphere/ProcServer/bin/wsadmin.sh -conntype SOAP -host QB_WMS_P550_127 -port 8880 -f UWFE250.jacl
uwfe248.jacl代码为
puts "-------------------------------------------------------------------"
puts "—开始执行jacl代码啦 --"
puts "-------------------------------------------------------------------"
#这是我们要发布的应用的存放路径
set EARDIR /home/uwfe/UWFE_SOURCE/antbuild/target/ear/UWFE.ear
#这是我们要发布的应用的名称
set APPNAME UWFE
#这是我们要发布的应用的cluster名称
set CLUSTERNAME WPSCluster
set NODE [$AdminControl getNode]
#简单的理解,取得当前的上下文
puts "-----------------------------------------------------------------"
puts "-- stoping App --"
puts "-----------------------------------------------------------------"
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB125Node01,process=WPS001,*]
$AdminControl invoke $APPMANAGER stopApplication UWFE
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB125Node01,process=WPS002,*]
$AdminControl invoke $APPMANAGER stopApplication UWFE
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB126Node01,process=WPS001,*]
$AdminControl invoke $APPMANAGER stopApplication UWFE
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB126Node01,process=WPS002,*]
$AdminControl invoke $APPMANAGER stopApplication UWFE
puts "-----------------------------------------------------------------"
puts "-- stoped App --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- uninstalling App --"
puts "-----------------------------------------------------------------"
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB125Node01,process=WPS001,*]
$AdminApp uninstall UWFE
puts "-----------------------------------------------------------------"
puts "-- uninstalled App --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- saveing config --"
puts "-----------------------------------------------------------------"
$AdminConfig save
puts "-----------------------------------------------------------------"
puts "-- saved config --"
puts "-----------------------------------------------------------------"
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB125Node01,process=WPS001,*]
puts "-----------------------------------------------------------------"
puts "-- Installing App --"
puts "-----------------------------------------------------------------"
$AdminApp install $EARDIR {-cluster WPSCluster -appname UWFE}
puts "-----------------------------------------------------------------"
puts "-- Installed App --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- saveing config --"
puts "-----------------------------------------------------------------"
$AdminConfig save
puts "-----------------------------------------------------------------"
puts "-- saved config --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- 安装程序成功,下面等待项目启动,可能需要1分钟 --"
puts "-----------------------------------------------------------------"
uwfe250.jacl代码为
puts "-------------------------------------------------------------------"
puts "—开始执行jacl代码啦 --"
puts "-------------------------------------------------------------------"
#这是我们要发布的应用的存放路径
set EARDIR /home/uwfe/UWFE_SOURCE/antbuild/target/ear/UWFE.ear
#这是我们要发布的应用的名称
set APPNAME UWFE
set NODE [$AdminControl getNode]
#简单的理解,取得当前的上下文
puts "-----------------------------------------------------------------"
puts "-- stoping App --"
puts "-----------------------------------------------------------------"
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=$NODE,process=server1,*]
$AdminControl invoke $APPMANAGER stopApplication UWFE
puts "-----------------------------------------------------------------"
puts "-- stoped App --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- uninstalling App --"
puts "-----------------------------------------------------------------"
$AdminApp uninstall UWFE
puts "-----------------------------------------------------------------"
puts "-- uninstalled App --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- saveing config --"
puts "-----------------------------------------------------------------"
$AdminConfig save
puts "-----------------------------------------------------------------"
puts "-- saved config --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- Installing App --"
puts "-----------------------------------------------------------------"
$AdminApp install $EARDIR {-appname UWFE}
puts "-----------------------------------------------------------------"
puts "-- Installed App --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- saveing config --"
puts "-----------------------------------------------------------------"
$AdminConfig save
puts "-----------------------------------------------------------------"
puts "-- saved config --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- starting appliacation --"
puts "-----------------------------------------------------------------"
$AdminControl invoke $APPMANAGER startApplication UWFE
puts "-----------------------------------------------------------------"
puts "-- started appliacation --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- 10.9.132.250 程序成功启动 --"
puts "-----------------------------------------------------------------"
startApp248.jacl代码
puts "-----------------------------------------------------------------"
puts "-- starting appliacation --"
puts "-----------------------------------------------------------------"
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB125Node01,process=WPS001,*]
$AdminControl invoke $APPMANAGER startApplication UWFE
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB125Node01,process=WPS002,*]
$AdminControl invoke $APPMANAGER startApplication UWFE
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB126Node01,process=WPS001,*]
$AdminControl invoke $APPMANAGER startApplication UWFE
set APPMANAGER [$AdminControl queryNames type=ApplicationManager,node=QB126Node01,process=WPS002,*]
$AdminControl invoke $APPMANAGER startApplication UWFE
puts "-----------------------------------------------------------------"
puts "-- started appliacation --"
puts "-----------------------------------------------------------------"
puts "-----------------------------------------------------------------"
puts "-- 程序成功启动 --"
puts "-----------------------------------------------------------------"
这里在命令行执行ant 就可以啦,程序编译好了会自动更新服务器上面的应用的,是不是很爽呢。
如需转载,请标明出处,尊重作者权利,
http://www.chinacsharp.net
http://blog.csdn.net/keyboardsun author:keyboardsun@163.com