nginx tomcat 自动部署python脚本【转】
2018-02-05 09:30
971 查看
#!/usr/bin/env python #--coding:utf8-- import sys,subprocess,os,datetime,paramiko,re local_path='/home/pangpeng/' nginx_web_path='/var/www/html/' tomcat_webapps_path='/usr/local/tomcat7/webapps/' backup_nginx_path='/tmp/backup_nginx/' backup_tomcat_app='/tmp/backup_tomcat_app/' username='root' port=22 #ssh port def web(web_dir,update_ip): #creat remote backup_path creat_backup_dir_cmd = 'mkdir '+backup_nginx_path exec_cmd(update_ip,creat_backup_dir_cmd) current_date = datetime.datetime.now().strftime("%Y%m%d%H%M") cmd = 'mv '+nginx_web_path+web_dir+' '+backup_nginx_path+web_dir+'_'+current_date #backup exec_cmd(update_ip,cmd) #upload file upload_cmd = 'scp -r '+local_path+web_dir+' '+update_ip+':'+nginx_web_path print(upload_cmd) subprocess.Popen(upload_cmd,shell=True,stdout=subprocess.PIPE) #change owner #chmod_cmd='chown -R jujusport.jujusport '+nginx_web_path+web_dir #exec_cmd(update_ip,chmod_cmd) def tomcat(tomcat_ip,app): root_dir = re.split('\.',app)[0] creat_backup_tomcat_app_cmd = 'mkdir '+backup_tomcat_app current_date = datetime.datetime.now().strftime("%Y%m%d%H%M") tomcat_cmd='pkill -15 java;sleep 5;'+'mv '+tomcat_webapps_path+app+' '+backup_tomcat_app+app+'_'+current_date tomcat_cmd2='mv '+tomcat_webapps_path+root_dir+' '+backup_tomcat_app+root_dir+'_'+current_date upload_cmd='scp '+local_path+app+' '+tomcat_ip+':'+tomcat_webapps_path cmd='sudo -u jujusport /usr/local/tomcat7/bin/catalina.sh start' #create backup dir exec_cmd(tomcat_ip,creat_backup_tomcat_app_cmd) #backup PacketName.war PacketName exec_cmd(tomcat_ip,tomcat_cmd) exec_cmd(tomcat_ip,tomcat_cmd2) #upload file subprocess.Popen(upload_cmd,shell=True,stdout=subprocess.PIPE) print "upload done:"+upload_cmd #start tomcat exec_cmd(tomcat_ip,cmd) def exec_cmd(server_ip, cmd): paramiko.util.log_to_file('/tmp/paramiko.log') pkey='/root/.ssh/id_rsa' key=paramiko.RSAKey.from_private_key_file(pkey) s=paramiko.SSHClient() s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(server_ip,port,username,pkey=key) try: print server_ip+':'+cmd stdin,stdout,stderr=s.exec_command(cmd) print 'stdout:'+stdout.read() print 'stderr:'+stderr.read() except Exception, e: print e finally: s.close() def cleanstore(server_ip,back_up_dir): command = "find %s -type d -mtime +30 |xargs rm -fr" %(back_up_dir) exec_cmd(server_ip,command) if __name__ == "__main__": print ''' example:deploy.py web v1 example:deploy.py tomcat 192.168.1.192 ROOT.war ''' if (sys.argv[1] == 'web') and (sys.argv[2]=='v1'): web("v1",'192.168.1.193') cleanstore('192.168.1.193',backup_nginx_path) elif (sys.argv[1] == 'tomcat') and (sys.argv[2]=='192.168.1.192'): tomcat('192.168.1.192',sys.argv[3]) cleanstore('192.168.1.192',backup_tomcat_app) elif (sys.argv[1] == 'tomcat') and(sys.argv[2]=='192.168.1.193'): tomcat('192.168.1.193',sys.argv[3]) cleanstore('192.168.1.193',backup_tomcat_app) else: sys.exit(0)
sed -i 's/Defaults requiretty/#Defaults requiretty/' /etc/sudoers
#visudo 注释掉Defaults requiretty
不然无法执行:
cmd='sudo -u jujusport /usr/local/tomcat7/bin/catalina.sh start' exec_cmd(tomcat_ip,cmd)
转自
nginx tomcat 自动部署python脚本 - CSDN博客 http://blog.csdn.net/u013636377/article/details/50556443
相关文章推荐
- python脚本自动监视重启tomcat进程
- python将linux系统下的war包自动部署到winserver2008tomcat服务下的自动化脚本
- python脚本自动监视tomcat进程,如果崩溃就自动重启
- bash脚本自动部署war包到tomcat和切换nginx代理
- tomcat+jenks环境自动部署脚本
- Tomcat 自动部署、回滚(java project)脚本
- python脚本自动监视tomcat进程,如果崩溃就自动重启
- linux 持续构建(自动部署) 重启动tomcat或进程的脚本
- 利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
- 利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
- tomcat自动部署代码脚本
- jenkins 自动部署脚本 自动启停tomcat并部署项目
- 用python脚本实现自动部署环境(一)
- 使用ant脚本编译web工程并自动部署到tomcat
- [置顶] linux系统tomcat应为被定时任务脚本监控自动部署,服务器重启导致同一个tomcat出现很多进程,kill -9杀死又出现等一系列问题解决。
- Python脚本实现项目工程自动远程部署
- tomcat自动部署脚本
- Linux系统下tomcat自动拉取代码打包发布的配置部署和脚本编写(转朋友)
- linux基础 -nginx和nfs代理 开发脚本自动部署及监控
- tomcat多实例自动部署脚本