1, build.py
#!/bin/env python
#coding:utf-8
#author:dxw
#function: build
#date:2016-07-13
import argparse
from string import Template
import os
import sys
if 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}.sh
PLATFORM_DIR=/home/dada/bebepayplatform
DEPLOY_DIR=$PLATFORM_DIR/deploy
BACK_DIR=$DEPLOY_DIR/back
WARS_DIR=$DEPLOY_DIR/wars
${projectNameDir}=$PLATFORM_DIR/${projectName}
svnNumber=$1
# cd $PLATFORM_DIR
cd $PLATFORM_DIR
# mkdir deploy/back
if [ -d deploy/back ];then
echo "deploy and back isexist!"
else
mkdir -p deploy/back
echo "mkdir deploy/back ok!"
fi
# mkdir deploy/wars
if [ -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 back
cp $DEPLOY_DIR/${projectName}.war $BACK_DIR/${projectName}.war
# svn up
svn up
if [ $? -ne 0 ];then
echo "platform svn up failed"
exit 1
fi
cd $$${projectNameDir}
#svn up -r $1
svn up -r $svnNumber
if [ $? -ne 0 ];then
echo "${projectName} svn up failed"
exit 1
fi
# build
# mvn clean package -DskipTests -P ${env}
mvn clean package -DskipTests -P ${env}
if [ $? -ne 0 ];then
echo "${projectName} build failed"
exit 1
fi
#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_$svnNumber
cp $$${projectNameDir}/target/*.war $DEPLOY_DIR/${projectName}.war
if [ $? -ne 0 ];then
echo "cp ${projectName} failed"
exit 1
fi
dt=`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-13
import argparse
from string import Template
import os
import sys
if 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}.sh
PLATFORM_DIR=/home/dada/bebepayplatform
DEPLOY_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 1
fi
'''
#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-13
import argparse
from string import Template
import os
import sys
if 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}.sh
PLATFORM_DIR=/home/dada/bebepayplatform
DEPLOY_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-13
import argparse
from string import Template
import os
import sys
if 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 Variable
RUN_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}_pid
if [ $? -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}.war
echo "cp ${projectName}.war to tomcat-${projectName} ..."
sudo cp $RUN_DIR/${projectName}.war $$${projectTomcatDir}/webapps/${projectName}.war
if [ $? -ne 0 ];then
echo "cp ${projectName}.war to tomcat-${projectName} faill!!"
exit 1
fi
#start tomcat-${projectName}
echo "start tomcat-${projectName} ..."
sudo $$${projectTomcatDir}/bin/startup.sh
if [ $? -ne 0 ];then
echo "start tomcat-${projectName} faill!!"
exit 1
else
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)