1. 程式人生 > >jenkins搭建自動化部署平臺(svn+tomcat重啟)

jenkins搭建自動化部署平臺(svn+tomcat重啟)

jenkins 自動化部署和整合程式碼的平臺

可以將git svn 上的程式碼 checkout 然後重新部署伺服器,節省開發測試的效率

一、https://jenkins.io/index.html 下載jenkins包(war包)

二、下載完war包   在伺服器上最好新建一個tomcat專門用來做jenkins啟動的   修改一下server.xml

   檔案中修改   :

(1) 修改http訪問埠(預設為8080埠 ,修改成不常用的埠,以免衝突)
    <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />將8080修改為第一個tomcat不在使用的埠號。此處所設的埠號即是以後訪問web時所用的埠號。  8888

(2) 修改Shutdown埠(預設為8005埠,防止多個tomcat埠衝突起不起來)
       <Server port="8005" shutdown="SHUTDOWN">
      將8005修改為沒有在使用的埠號,例如8088  

(3) 修改JVM啟動埠(預設為8009埠)    
     <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

修改後啟動tomcat就輸入

http://伺服器ip:埠號/jenkins 就可以看到jenkins的介面了

進入jenkins會有個等待頁,讓你輸入驗證碼 (會給你一個伺服器的路徑)照著伺服器路徑 找到initialAdminPassword檔案( /root/.jenkins)把裡面的內容複製到頁面輸入

就可以進入

接著是配置jenkins登陸的賬號密碼和下載外掛

到這裡 jenkins就算是安裝成功了

接下去是jenkins配置從svn拉取程式碼 到tomcat底下進行部署

一、新建一個專案


二、

選擇一個自由風格的軟體專案並且命名進入


三、


選擇原始碼管理,這裡是從svn專案檢出的 所以選擇subversion



Repository URL :這裡填寫的是點選構建jenkins會從這個地址下把裡面的檔案檢出 Local module directory 配置的路徑下的workspace 中

Credentials :這裡配置一下svn的 賬號密碼 

Local module directory 一般配置  ./構建的專案名(/root/.jenkins/jobs/你建的構建任務/workspace/構建的專案名)

最後構建後的專案在./構建的專案名(/root/.jenkins/jobs/你建的構建任務/workspace/構建的專案名) 目錄下

這樣 從svn拉取程式碼就配置成功了


三、因為我的專案是web專案

所以拉取程式碼後要部署到tomcat並且重啟

這時候


選擇構建步驟

如果是還需要用ant構建一下web專案可以先選擇invoke ant配置

我是從本地構建好的web專案 所以構建步驟只選擇execute shell


在command裡面寫你需要在jenkins把svn的程式碼拉取到jenkins的jobs目錄下需要做的事

這裡就有三個步驟  一個是將web專案 移到tomcat下的webapps目錄下

shutdown tomcat

startup tomcat

成功

BUILD_ID=DONTKILLME  (加這個原因是因為沒加之前用command startup tomcat一直啟動失敗而shutdown卻是成功的   原因是因為jenkins啟動後的程序會被kill掉

所以要加這句,才能啟動成功)
cp -a /root/.jenkins/jobs/dragsun_test/workspace/dragsunTest/dist/dragsunTest /home/tomcat/apache-tomcat-7.0.68/webapps(這個是將jenkins拉取的svn程式碼拷貝到tomcat下)
sh /home/tomcat/apache-tomcat-7.0.68/bin/restart.sh

(自己寫的restart指令碼)

程式碼如下:

#!/bin/sh
  
  bin=$(cd `dirname $0`; pwd)
  pid=$(ps aux | grep tomcat | grep -v grep | grep -v restart | grep ${bin} | awk '{print $2}') 
  
 if [ -n "${pid}" ]; then
      echo "Shutdown..."
     sh ${bin}/shutdown.sh
      sleep 3
 
     pid=$(ps aux | grep tomcat | grep -v grep | grep -v restart | grep ${bin} | awk '{print $2}')
     if [ -n "${pid}" ]; then
        kill -9 ${pid}
         sleep 1
     fi
 fi
 
 echo "Startup..."
 sh ${bin}/startup.sh
 if [ "$1" = "-v" ]; then
     tail -f ${bin}/../logs/catalina.out
 fi

這個指令碼拷下來貼上到txt檔案下修改後綴成sh檔案丟到tomcat的bin目錄下是有問題的 會報錯

所以拷到伺服器後

vim (tomcat bin目錄)/restart.sh

開啟檔案編輯器檢視是否有多餘字元,刪除

點選鍵盤Esc 鍵後輸入

:set ff?

檢視檔案格式 

:set ff=unix

修改檔案格式,儲存後退出

最後將構建任務儲存,並且apply後就可以進行構建任務了

Repository URL