自动更新代码/编译/传输/部署war包到WebSphere

最初SVN_server, Local_PC, server: 123之间的文件传输是依赖手动地,编译和部署也是依赖手动的。为了避免繁琐的手工劳动,可以设计一个如下的自动方案。

一、配置自动获取并编译的环境

1)       Local_PC安装ccproxy,使之成为代理服务器;

2)       123服务器上安装SVN命令行工具CollabNetSubversionEdge-2.0.1_linux-x86_64.tar.gz;

3)       配置proxy指向,修改/home/wasadmin/.subversion/servers,添加

[global]

http-proxy-host=10.6.246.136[已安装ccproxy代理服务器的PC]

http-proxy-port=808

4)       安装Ant到123服务器,同时配置环境变量

5)       配置JAVA环境变量指向随webSphere发布的IBM J9 VM虚拟机[J9 同JRockit有些地方类似,随产品发布,具较好性能]

6)       编写bash脚本compile.sh[easy]

#!/bin/sh

svn --username  up /home/wasadmin/code

ant

执行该脚本3分钟之内可完成x.war, y.war, z.war, w.war四个war包得编译。

二、传输War包

因为x.war, y.war部署在122服务器上,所以需要ftp到122上,编写bash脚本getwar.sh

#!/bin/sh

ftp ftp://wasadmin:[email protected]/code/temp/x.war

ftp ftp://wasadmin:[email protected]/code/temp/y.war

getwar.sh可以在1秒内将x.war, y.war拉到122服务器上

三、自动部署到websphere

自动部署到WebSphere使用WebSphere内置支持的Jpython脚本,insserver.py[ install server.war]的内容如下,

安装其他war的py脚本类似。

# 0 set appManager MBean

appManager=AdminControl.queryNames('cell=IRM-APP,node=test-irm-app-002Node01,type=ApplicationManager,process=server_war_test_0,*')

# 1 stop app

AdminControl.invoke(appManager, 'stopApplication', 'server')

# 2 uninstall

AdminApp.uninstall('server')

# 3 install

AdminApp.install('/home/wasadmin/warpkg/server.war', '[-nodetest-irm-app-002Node01 -cell IRM-APP -server server_war_test_0 -appname server-contextroot / -MapWebModToVH [[server server.war,WEB-INF/web.xmldefault_host]]]')

# 4 start server

AdminControl.invoke(appManager, 'startApplication', 'server')

# 5 save conf

AdminConfig.save()

线性部署server.war[4m]+test.war[9m]=13m,x.war和y.war的各自部署速度小于4m。

采用并发部署server.war[4m] || test.war[9m]=9m,编写perl脚本如下,ConInsByPerl.pl

#!/usr/bin/perl

$PATH="/home/wasadmin/deploy2WebSphere/";

$CMD0="upWar0.sh";

$CMD1="upWar1.sh";

$comCMD0=join "",$PATH,$CMD0;

$comCMD1=join "",$PATH,$CMD1;

if (fork()) {

    system("$comCMD0");

} else {

    system("$comCMD1");

}


你可能感兴趣的:(AutoDeploy,ConCurrent,bash,perl,Jpython,WebSphere)