標籤:nbsp 版本號碼 構建 plink username script roo x86 data-
</pre>基於眼下業務的版本號碼。使用的maven 及tomcat <p></p><p>假設我們使用 Jenkins 公布是比較好的,可是存在一定的問題,就是須要學習時間,</p><p>基於我們的項目。我使用python 自己主動構建公布環境</p><p>指令碼例如以下:</p><p></p><pre code_snippet_id="498203" snippet_file_name="blog_20141027_2_7484436" name="code" class="python">#!/usr/bin/env python# -*- coding: utf-8 -*-import sysimport osimport ConfigParserhomedir = os.getcwd()print homedirconfig = ConfigParser.ConfigParser()config.read("config.propties")user_name = config.get("SVN", "user_name").decode(‘utf8‘).encode(‘cp936‘) user_password = config.get("SVN", "user_password").decode(‘utf8‘).encode(‘cp936‘) check_out_dir = homedirlog_name = config.get("SVN", "log_name").decode(‘utf8‘).encode(‘cp936‘) script_dir = homedirpkg_name=homedir+os.path.sep+"mabaobang-web"+os.path.sep+"target"+os.path.sep+"mabaobang-web.war"rmote_ip=config.get("SVN", "rmote_ip")rmote_user=config.get("SVN", "rmote_user")rmote_passwd=config.get("SVN", "rmote_passwd")print "pkg_name",pkg_namescript_dir=config.get("SVN", "script_dir").decode(‘utf8‘).encode(‘cp936‘)command = "svn log -v --xml " + check_out_dir + " > " + log_name + " --username " + user_name + " --password " + user_passwordos.system( command )os.chdir(check_out_dir)print os.path.abspath(".").decode(‘cp936‘).encode(‘utf8‘)command1="svn update "+ check_out_dir + " --username " + user_name + " --password " + user_password +" --no-auth-cache --non-interactive --trust-server-cert"os.system( command1 )os.system("mvn clean:clean package");file_object = open(‘123123.txt‘, ‘w‘)file_object.write("open 192.168.15.234\n")file_object.writelines("put "+pkg_name+"\n")#file_object.writelines(file.newlines)file_object.writelines("bye\n")#file_object.writelines(file.newlines)#file_object.writelines(file.newlines)file_object.flush()file_object.close()if os.path.exists(pkg_name): os.chdir(homedir) try: command_sftp="ftp.exe -l "+ rmote_user +" -pw "+rmote_passwd+" -b 123123.txt " os.system( command_sftp ) except Exception,e: print "done" finally: command_ssh="ssh.exe -ssh -pw "+ rmote_passwd +" "+rmote_passwd+ "@192.168.15.234 ‘/home/momabo/deploy.sh‘ " os.system( command_ssh )
設定檔例如以下:
[SVN]user_name=111111user_password=000000#check_out_dir=D:\11111\1111-parentlog_name=E:\log.log#out_put_dir=D:\1111\111-parent#war_name=D:\11111111-parent\11111111111111-web\target\111111111-web.warrmote_ip=192.168.15.234rmote_user=xxxx
須要二個開源軟sftp.exe http://the.earth.li/~sgtatham/putty/0.63/x86/psftp.exe
和 ssh.exe http://the.earth.li/~sgtatham/putty/0.63/x86/plink.exe 進行下載後就能夠了
自己主動化公布後台指令碼
!/bin/bash ###?碌?梅?
貓?陋擄????婁碌?war路?碌陸錄?
?驢?
錄???忙###碌??祿虜陸攏潞錄矛虜茅?
??
婁碌?
擄眉??路帽??麓蘆碌陸錄??驢?錄??
攏潞USER_HOME=/home/3213123TOMCAT_HOME=${USER_HOME}/tomcat#?婁??碌??
驢?錄APP_HOME=${TOMCAT_HOME}/webapps/12313123-webCONF_FILE=${APP_HOME}/WEB-INF/classes/config.propertiesIP_ADD=127.0.0.1MYSQL_USER_NAME=rootMYSQL_USER_PASSWD=213131UPLOAD_DIR=/home/312312312/upload###碌?
?祿虜陸攏潞錄矛虜茅?
?
?
婁碌?擄眉?
?路帽??麓蘆碌陸錄?
?
驢?錄??攏潞if [ ! -f ${USER_HOME}/mabaobang-web.war ];then echo -e "\033[31m ERROR:Pkg ${USER_HOME}/mabaobang-web.war is not exist. \033[0m" exit 1fi####碌?
露鎂虜陸?攏?鹿路鎂?帽${TOMCAT_HOME}/bin/shutdown.sh####?樓魯媒?祿虜驢路?碌?????if [ ! -d ${APP_HOME} ];then echo -e "\033[31m ERROR:Dir ${APP_HOME} is not exist. \033[0m" exit 1else rm -rf ${APP_HOME}/*fimv ${USER_HOME}/1312313-web.war ${APP_HOME}/cd ${TOMCAT_HOME}/webapps/m312321g-webjar -xvf ${APP_HOME}/3132133-web.war##??賂??盲????錄鎂dos2unix ${CONF_FILE}##??賂??盲??
?
?錄鎂sed -i "s/\/\/127.0.0.1/\/\/${IP_ADD}/g" ${CONF_FILE}sed -i "s/^[ ]*jdbc_username=.*/jdbc_username=${MYSQL_USER_NAME}/g" ${CONF_FILE}sed -i "s/^[ ]*jdbc_password=.*/jdbc_password=${MYSQL_USER_PASSWD}/g" ${CONF_FILE}
web的自己主動化公布