1, build.py #!/bin/env python#coding:utf-8#author:dxw#function: build#date:2016-07-13import argparse
1, build.py
#!/bin/env python#coding:utf-8#author:dxw#function: build#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 7: eg = "eg: --projectName bbpayapi --projectNameDir BBPAYAPI_DIR --env production > build_bbpayapi.sh" print(eg) exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--projectNameDir", action="store", dest="projectNameDir")parser.add_argument("--env", action="store", dest="env")result = parser.parse_args()strsh='''#!/bin/bash#build_dxw_${projectName}.shPLATFORM_DIR=/home/dada/bebepayplatformDEPLOY_DIR=$PLATFORM_DIR/deployBACK_DIR=$DEPLOY_DIR/backWARS_DIR=$DEPLOY_DIR/wars${projectNameDir}=$PLATFORM_DIR/${projectName}svnNumber=$1# cd $PLATFORM_DIRcd $PLATFORM_DIR# mkdir deploy/backif [ -d deploy/back ];then echo "deploy and back isexist!"else mkdir -p deploy/back echo "mkdir deploy/back ok!"fi# mkdir deploy/warsif [ -d deploy/wars ];then echo "deploy and wars isexist!"else mkdir -p deploy/wars echo "mkdir deploy/wars ok!"fi# cp deploy/files.war to backcp $DEPLOY_DIR/${projectName}.war $BACK_DIR/${projectName}.war# svn upsvn upif [ $? -ne 0 ];then echo "platform svn up failed" exit 1ficd $$${projectNameDir}#svn up -r $1svn up -r $svnNumberif [ $? -ne 0 ];then echo "${projectName} svn up failed" exit 1fi# build# mvn clean package -DskipTests -P ${env}mvn clean package -DskipTests -P ${env}if [ $? -ne 0 ];then echo "${projectName} build failed" exit 1fi#echo "cp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.war"echo "cp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.war"cp $$${projectNameDir}/target/*.war $WARS_DIR/${projectName}.war_$svnNumbercp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.warif [ $? -ne 0 ];then echo "cp ${projectName} failed" exit 1fidt=`date`echo "$dt      $$${projectName}      $$${projectNameDir}      $svnNumber <br>" >> /usr/local/nginx/html/t.html'''d = dict(projectName=result.projectName, env=result.env, projectNameDir=result.projectNameDir)#print("d: %s"%(d) )print( Template(strsh).safe_substitute(d) )
2, send.py
#!/bin/env python#coding:utf-8#author:dxw#function: send#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 11: eg = "eg: --projectName ebomp --port 22 --user bebepay --userDir run_pkgs --iplist 192.168.114.11,192.168.114.12,192.168.114.13,192.168.114.14 > send_bbpayapi.sh" print(eg) exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--port", action="store", dest="port")parser.add_argument("--user", action="store", dest="user")parser.add_argument("--userDir", action="store", dest="userDir")parser.add_argument("--iplist", action="store", dest="iplist")result = parser.parse_args()strsh='''#!/bin/bash#send_dxw_${projectName}.shPLATFORM_DIR=/home/dada/bebepayplatformDEPLOY_DIR=$PLATFORM_DIR/deploy# COPY FILE TO REMOTE HOST'''strp='''# cp file to ${ip}echo "scp $DEPLOY_DIR/${projectName}.war ${user}@${ip}:${userDir} ......"scp -P ${port} $DEPLOY_DIR/${projectName}.war ${user}@${ip}:${userDir}/if [ $? -ne 0 ]; then echo "scp $DEPLOY_DIR/${projectName}.war ${user}@${ip}:${userDir} faill!!" exit 1fi'''#print("userDir: %s"%(result.userDir))d1 = dict(projectName=result.projectName)#print("d: %s"%(d) )print( Template(strsh).safe_substitute(d1) )d0 = dict(port=result.port, user=result.user, userDir=result.userDir, projectName=result.projectName)ips=result.iplist.split(',')#print("iplist: %s"%(ips))for lip in ips: t=dict(ip=lip) d=d0.copy() d.update(t) s = Template(strp).safe_substitute(d) print(s)
3, rupdate.py
#!/bin/env python#coding:utf-8#author:dxw#function: rupdate#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 11: eg = "eg: --projectName ebomp --port 22 --user bebepay --userDir run_pkgs --iplist 192.168.114.11,192.168.114.12,192.168.114.13,192.168.114.14 > rupdate_bbpayapi.sh" print(eg) exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--port", action="store", dest="port")parser.add_argument("--user", action="store", dest="user")parser.add_argument("--userDir", action="store", dest="userDir")parser.add_argument("--iplist", action="store", dest="iplist")result = parser.parse_args()strsh='''#!/bin/bash#rupdate_dxw_${projectName}.shPLATFORM_DIR=/home/dada/bebepayplatformDEPLOY_DIR=$PLATFORM_DIR/deploy# COPY FILE TO REMOTE HOST'''strp='''echo "Beginning ${ip} update_${projectName}.sh-------"ssh -p ${port} -t ${user}@${ip} /home/${user}/${userDir}/update_dxw_${projectName}.sh'''#print("userDir: %s"%(result.userDir))d1 = dict(projectName=result.projectName)#print("d: %s"%(d) )print( Template(strsh).safe_substitute(d1) )d0 = dict(port=result.port, user=result.user, userDir=result.userDir, projectName=result.projectName)ips=result.iplist.split(',')#print("iplist: %s"%(ips))for lip in ips: t=dict(ip=lip) d=d0.copy() d.update(t) s = Template(strp).safe_substitute(d) print(s)
4, update.py
#!/bin/env python#coding:utf-8#author:dxw#function: update#date:2016-07-13import argparsefrom string import Templateimport os import sysif len(sys.argv) < 9: eg = "eg: --projectName ebomp --projectTomcatDir TOMCAT_EBOMP_DIR --user bebepay --userDir run_pkgs > update_bbpayapi.sh" print(eg) exit(1)parser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument("--projectName", action="store", dest="projectName")parser.add_argument("--projectTomcatDir", action="store", dest="projectTomcatDir")parser.add_argument("--user", action="store", dest="user")parser.add_argument("--userDir", action="store", dest="userDir")result = parser.parse_args()strsh='''#!/bin/bash##update_dxw_${projectName}.sh#set Shell VariableRUN_DIR=/home/${user}/${userDir}${projectTomcatDir}=/usr/local/tomcat-${projectName}#stop tomcat-${projectName}tomcat_${projectName}_pid=`ps -ef |grep java |grep tomcat-${projectName} |grep -v grep |awk '{print $2}' `echo "start kill tomcat-${projectName} ..."sudo kill -9 $tomcat_${projectName}_pidif [ $? -ne 0 ];then echo "stop tomcat-${projectName} faill!!"fi#rm ${projectName}echo "rm ${projectName} from tomcat-${projectName}..."sudo rm -rf $$${projectTomcatDir}/webapps/${projectName}*if [ $? -ne 0 ];then echo "rm ${projectName} on tomcat-${projectName} faill!!"fi#cp ${projectName}.warecho "cp ${projectName}.war to tomcat-${projectName} ..."sudo cp $RUN_DIR/${projectName}.war $$${projectTomcatDir}/webapps/${projectName}.warif [ $? -ne 0 ];then echo "cp ${projectName}.war to tomcat-${projectName} faill!!" exit 1fi#start tomcat-${projectName}echo "start tomcat-${projectName} ..."sudo $$${projectTomcatDir}/bin/startup.shif [ $? -ne 0 ];then echo "start tomcat-${projectName} faill!!" exit 1else echo "start tomcat-${projectName} ok!!"fi'''d = dict(user=result.user, userDir=result.userDir, projectName=result.projectName, projectTomcatDir=result.projectTomcatDir)s = Template(strsh).safe_substitute(d)print(s)