近期一个项目属于测试过渡期,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()#激活

[自动运维]weblogic自动发布的更多相关文章

  1. [自动运维]oracle自动备份

    数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们 ...

  2. Linux轻量级自动运维工具-Ansible浅析【转】

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  3. Linux自动运维工具Ansible的使用

    Linux自动运维工具Ansible的使用 我们熟悉这个工具后, 可以很轻松的安装k8s. 一.介绍 ansible - run a task on a target host(s) Ansible是 ...

  4. Linux轻量级自动运维工具-Ansible浅析 转

    转自 Linux轻量级自动运维工具-Ansible浅析 - ~微风~ - 51CTO技术博客http://weiweidefeng.blog.51cto.com/1957995/1895261 Ans ...

  5. .netcore下的微服务、容器、运维、自动化发布

    原文:.netcore下的微服务.容器.运维.自动化发布 微服务 1.1     基本概念 1.1.1       什么是微服务? 微服务架构是SOA思想某一种具体实现.是一种将单应用程序作为一套小型 ...

  6. Windows服务器Pyton辅助运维--01.自动Copy文件(文件夹)到远程服务器所在目录

    Windows服务器Pyton辅助运维 01.自动Copy文件(文件夹)到远程服务器所在目录 开发环境: u  Web服务器: Windows Server 2008 R2 SP1 IIS 7.5 u ...

  7. 18.自动运维工具ansible

    1 Ansible 介绍和架构 1.1 Ansible介绍 ansible 的名称来自科幻小说<安德的游戏>中跨越时空的即时通信工具,使用它可以在相距数光年的 距离,远程实时控制前线的舰队 ...

  8. 自动运维:Ansible -ansible tower

    文档主页:http://docs.ansible.com/参考文档:http://docs.ansible.com/ansible/参考文档:http://docs.ansible.com/ansib ...

  9. CentOS 升级 openSSH+ sh脚本自动运维

     升级前后对比 openSSH作为linux远程连接工具,容易受到攻击,必须更新版本来解决,低版本有如下等漏洞: OpenSSH 远程代码执行漏洞(CVE-2016-10009) OpenSSH au ...

随机推荐

  1. 【leetcode】Validate Binary Search Tree(middle)

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  2. 【leetcode】Integer to Roman & Roman to Integer(easy)

    Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...

  3. java中方法参数的一些总结(1)

    1.问题说明        在C++中,函数调用时有传值调用和传址调用两种方式,但在Java中只有传值调用一种方式.Java中的方法参数为那几种基本数据类型的情况跟C++中一样,传入的只是变量的拷贝. ...

  4. php面向对象加载类、常用设计模式

    加载类: include("./Ren.class.php"); include "./Ren.class.php"; 用此方法的时候include后面要加空格 ...

  5. 73. Set Matrix Zeroes

    题目: Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. Fo ...

  6. August 7th 2016, Week 33rd Sunday

    Knowing yourself is the height of wisdom. 了解自己就是大智慧. Two-day holiday, even I didn't have enought tim ...

  7. Centos7 设置Swap分区

    1.使用dd命令创建一个swap交换文件 dd if=/dev/zero of=/home/swap bs=1024 count=1024000 2.制作为swap格式文件: mkswap /home ...

  8. MVC4方法行为过滤器例子(用户登录)

    在Model文件夹下添加一个类MyActionFilterAttribute继承于ActionFilterAttribute: using System; using System.Collectio ...

  9. C++多线程编程(入门实例)

    多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平. 其实C++语言本身并没有提供多线程机制(当然目前C++ 11 ...

  10. mysql 得到重复的记录

    select devicetoken from client_user group by devicetoken having count(devicetoken)>1