持续集成之Python自动化部署tomcat(一)

时间:2024-10-22 18:52:48

1、定义全局变量:-------------------------------------------------------------------------#!/usr/bin/python#coding=utf-8import commandsimport sysimport osimport time#指定的目录必须存在tomcat_home='/root/tomcat-7-elephant_cust/'webapp_name='elephant_cust'backup_home='/root/backups/'source_home='/root/elephant_cust/'--------------------------------------------------------------------------

持续集成之Python自动化部署tomcat(一)

2、部署前,需要先关闭tomcat---------------------------------------------------------------------------#关闭tomcatdef shutdown(): print "准备关闭tomcat......" status,output=commands.getstatusoutput('ps -ef|grep -i '+tomcat_home+'|wc -l') if(int(output)>2): #判断是否有tomcat进程 print " 开始关闭tomcat" status,output=commands.getstatusoutput(tomcat_home+'bin/shutdown.sh') if(status!=0): print output sys.exit(1) time.sleep(0.5) #关闭程序缓存时间 status,output=commands.getstatusoutput('ps -ef|grep -i '+tomcat_home+'|wc -l') if(int(output)>2): #判断是否关闭成功 print " 强制关闭tomcat" status,output=commands.getstatusoutput('kill -9 `ps -ef|grep -i '+tomcat_home+' |awk \'NR==1{print $2}\'`') if(status!=0): print output sys.exit(1) print " 已关闭tomcat" return 0 print " tomcat未启动"--------------------------------------------------------------------------

持续集成之Python自动化部署tomcat(一)

3、关闭tomcat后,需要对之前的版本进行备份---------------------------------------------------------------------------#备份之前的版本def backup(): print "开始备份......" nowdate=time.strftime('%Y%m%d',time.localtime()) #判断今日备份目录是否存在,不存在则创建 if(not os.path.exists(backup_home+'/'+webapp_name+'/'+nowdate)): status,output=commands.getstatusoutput('mkdir -p '+backup_home+'/'+webapp_name+'/'+nowdate) if(status!=0): print output sys.exit(1) #删除今天前一次的备份数据 status,output=commands.getstatusoutput('rm -rf '+backup_home+'/'+webapp_name+'/'+nowdate+'/*') if(status!=0): print output sys.exit(1) #备份当前版本,备份前先判断目录是否是空的 if(len(os.listdir(tomcat_home+'webapps/'))>0): status,output=commands.getstatusoutput('mv '+tomcat_home+'webapps/* '+backup_home+'/'+webapp_name+'/'+nowdate) if(status!=0): print output sys.exit(1) print ' 备份成功'---------------------------------------------------------------------------

持续集成之Python自动化部署tomcat(一)

4、开始部署------------------------------------------------------------------------------#部署新程序def deploy(): print "开始部署....." #重命名由Jenkins上传的war包名 status,output=commands.getstatusoutput('mv '+source_home+'*.war '+source_home+webapp_name+'.war') if(status!=0): print output sys.exit(1) #部署新war包到tomcat里 status,output=commands.getstatusoutput('mv '+source_home+webapp_name+'.war '+tomcat_home+'webapps/') if(status!=0): print output sys.exit(1) #启动tomcat status,output=commands.getstatusoutput(tomcat_home+'bin/startup.sh') print output------------------------------------------------------------------------------

持续集成之Python自动化部署tomcat(一)

5、如果你还需要对配置文件进行替换或者更改,可以在启动tomcat前进行实现。

© 手抄报圈