自动化部署脚本

  1. #!/usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3. import sys, os  
  4. import subprocess  
  5. import re  
  6. import shlex  
  7. import time  
  8. filename = sys.argv[0]  
  9. ABSDIR = os.path.abspath(os.path.dirname(__file__))  
  10. DICT = {'192.168.0.30''/home/apache-tomcat-7.0.55',  
  11.         '192.168.0.35''/root/apache-tomcat-7.0.55',  
  12.         '192.168.0.39''/root/apache-tomcat-7.0.55'  
  13.         }  
  14. # copytoserver执行远程拷贝,将sql文件拷贝至35的/root/test目录并执行、war文件拷贝至DICT字典所指定的目录,  
  15. def copytoserver():  
  16.     filelist = [i for i in os.listdir(ABSDIR) if i.endswith('sql'or i.endswith('war')]  
  17.     try:  
  18.         for s in filelist:  
  19.             if s.endswith('war'):  
  20.                 for k, v in DICT.items():  
  21.                     print "\n\n拷贝%s到%s的%s/webapps/目录......"%(s,k,v)  
  22.             command_line1 = ['ssh''root@'+k, 'rm -rf ', v+'/webapps'+'/bankriskcontrol' ]  
  23.                     command_line2 = ['scp', s, 'root@'+k+':'+v]  
  24.                     p1 = subprocess.Popen(command_line1)  
  25.                     p1.wait()  
  26.                     p2 = subprocess.Popen(command_line2)  
  27.                     p2.wait()  
  28.             print "\n\n"  
  29.             else:  
  30.                 print "\n\n拷贝%s到192.168.0.35的/root/test目录......"%s  
  31.         command_line3 = ['scp', s, 'root@192.168.0.35:/root/test']  
  32.                 p3 = subprocess.Popen(command_line3)  
  33.                 p3.wait()  
  34.     except IOError, e:  
  35.         print e  
  36.   
  37.   
  38. #changeDB执行sql脚本  
  39. def changedb():  
  40.     sql = ['create_database.sql''init_database_data.sql''addtestdata.sql']  
  41. #    path = '/usr/local/mysql/bin/'  
  42.     try:  
  43.         print "\n\n创建数据库......\n\n"  
  44.     cmd1 = ['ssh''root@192.168.0.35''mysql''-uroot''-p111111''<''/root/test/'+sql[0]]  
  45.     p1 = subprocess.Popen(cmd1)  
  46.         p1.wait()  
  47.     print "\n\n初始化数据库......\n\n"  
  48.     cmd2 = ['ssh''root@192.168.0.35''mysql''-uroot''-p111111''-Dbank_risk_control''<''/root/test/'+sql[1]]  
  49.         p2 = subprocess.Popen(cmd2)  
  50.         p2.wait()  
  51.     print "\n\n添加测试数据......\n\n"  
  52.     cmd3 = ['ssh''root@192.168.0.35''mysql''-uroot''-p111111''-Dbank_risk_control''<''/root/test/'+sql[2]]  
  53.         p3 = subprocess.Popen(cmd3)  
  54.         p3.wait()  
  55.       
  56.     except IOError, e:  
  57.         print e  
  58.   
  59.   
  60. #管理远端tomcat服务器  
  61. def restart_tomcat():  
  62.     try:  
  63.         for k, v in DICT.items():  
  64.             command_line4 = ['ssh''root@'+k, v+'/bin/shutdown.sh']  
  65.             command_line5 = ['ssh''root@'+k, v+'/bin/startup.sh']  
  66.             print "\n\n%s的tomcat服务正在重启.........\n\n"%k  
  67.             p1 = subprocess.Popen(command_line4)  
  68.             p1.wait()  
  69.             p2 = subprocess.Popen(command_line5)  
  70.             p2.wait()  
  71.         print "\n\n============================================="  
  72.     except IOError, e:  
  73.         print e  
  74.   
  75. if __name__ == '__main__':  
  76.     print '\033[1;31;40m'  
  77.     print '*'*40'\n'  
  78.     copytoserver()  
  79.     print '\033[1;31;40m'  
  80.     print '*'*40'\n'  
  81.     changedb()  
  82.     print '\033[1;31;40m'  
  83.     print '*'*40'\n'  
  84.     restart_tomcat()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值