[自动运维]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()#激活

 

posted @ 2015-10-18 00:46  孤子  阅读(2288)  评论(0编辑  收藏  举报