[自动运维]weblogic自动发布
近期一个项目属于测试过渡期,bug修复比较频繁,每次都会伴随着项目的打包、上传、发布,此类重复操作近乎每天都会进行,刚好最近在看python相关资料,决定重新将此前学习的weblogic的wlst相关内容重新整理一份脚本:
#!/home/weblogic/wlserver_10.3/common/bin/wlst.sh import sys if len(sys.argv)==2: appName=sys.argv[1] print "start connect weblogic" connect('weblogic','weblogic','t3://localhost:7001') print "===========stop "+appName+" ===============" stopApplication(appName) #edit() #print "========undeploy web==========" #undeploy('web') #activate() print "==============reploy "+appName+" ========" redeploy(appName) #print "=========deploy web=============" #deploy('web','/home/weblogic/user_projects/domains/base_domain/servers/pweb/deploy/web','web') #activate() print "==========deploy "+appName+"=========" startApplication(appName) exit() else: print "please input the appName"
以下为逐一说明:
1、由于wlst脚本基于jyphon,但又不能直接使用python进行解析,因此需要首先定义解析器,解析器为weblogic自带脚本wlst.sh
#!/home/weblogic/wlserver_10.3/common/bin/wlst.sh
2、由于有多个项目,每次启动无法确定,因此从外部传输要启动的appName,python使用sys.argv获取外部参数,外部参数第一个固定为脚本名称,第二个开始为外部参数。因此判断是否传入appName
import sys if len(sys.argv)==2: appName=sys.argv[1]
3、wlst操作weblogic需要首先登陆
connect('weblogic','weblogic','t3://localhost:7001')
4、登陆后依次进行如下操作,停止应用,重新发布,启动应用,
stopApplication(appName)#停止应用 redeploy(appName)#重新发布 startApplication(appName)#启动应用
5、为了防止内存溢出,也可以采用删除应用和重新部署
edit()#启用编辑模式 undeploy('web') #删除应用发布 deploy('web','/home/weblogic/user_projects/domains/base_domain/servers/deploy/web','web')#发布应用 activate()#激活