廢話很少說,上步驟。web
環境:shell
以上環境準備你們可自行google或baidu安裝,我主要就講講如何整合成一個CI服務。瀏覽器
------------------------------------------------分隔線 ⊙﹏⊙‖∣----------------------------------------------------------tomcat
1,啓動jenkins,我已作成服務,所以直接service jenkins start就好了。啓動成功後能夠看到以下 信息:bash
說明啓動沒有問題,咱們來訪問看看,直接瀏覽器上輸入http://你jenkins那臺主機的ip:8080/,jenkins默認端口8080,自已能夠改,只要不衝突。看到以下信息就訪問成功:服務器
2,jenkins初始配置app
咱們將看到以下信息:ssh
初始時有默認參數,可不用更改,默認就好,咱們主要來配置JDK,MAVEN,Jenkins Location,Publish over SSH這三個配置項。webapp
1)點JDK安裝,按照實際狀況來填寫參數。個人參數以下:maven
2)點Maven安裝,一樣按你實際狀況來填。個人參數以下:
3)配置Jenkins Location,一樣按你實際狀況來填。個人參數以下:
這裏說下Jenkins URL,這個地址其實就是你在瀏覽器訪問Jenkins服務的地址,你是怎麼訪問的就怎麼填。
4)配置Publish over SSH,這是個插件,用途很大,能夠在jenkins中直接經過SSH服務來執行遠程主機的腳本。咱們分兩步來搞:
第一步:安裝Publish over SSH插件十分簡單,以下圖:
進入插件管理頁面中,咱們選擇這個插件,再安裝它。
裝好後,咱們能夠在「已安裝」tab頁中看到這個插件,以下:
第二步:配置Publish Over SSH插件,仍是去「系統管理--系統設置」裏面配置,個人配置以下:
說明下SSH Server項的幾個參數意思:
Name:隨意寫,你自已懂就行
Hostname:SSH服務器的地址
Username:SSH的賬號
Remote Directory:這個比較重要,遠程目錄(Remote Directory)是幹嗎的,它是用來存放經過SSH執行腳本後生成的文件所存放的目錄,
我這裏寫/my_bak意思是在SSH服務器根目下放我經過執行腳本(publish.sh這個腳本是用來備份和啓動tomcat用的,後文會寫出這個腳本)生成一些備份文件所在目錄,
因此必定要先自已建立好。
配好後,點Test Configuration按鈕測試下,成功以下 :
以上都配置完成後,點保存就行了。
上面作的這些都是基礎配置,咱們開始搞一個項目吧。
------------------------------------------------分隔線 ⊙﹏⊙‖∣--------------------------------------------------------------------------
1,搞個maven項目,取名爲my_project1
2,開始配置這個項目,主要配置 源碼管理, Build, SSH Publishers這三個。源碼固然是構建maven項目時要用的,源碼是放在svn上的,因此這兩個必定得配對好。
第一,項目名稱以下,不用管自動就有,以下:
第二,配置源碼管理,以下:
選Subversion方式,填svn地址,個人是,其餘默認就行。
第三,配置Build,以下:
第四,配置SSH Publishers,這個重點,我是結合shell腳原本搞的自動備份war包,自動上傳war到tomcat webapp目錄下,自動重啓tomat的。
因此這裏是須要一個腳本的,咱們命名爲publish.sh,這個腳本咱們下面要配置的。源碼以下:
#!/bin/bash #defined TOMCAT_HOME="/opt/tomcat8083" TOMCAT_PORT=8083 PROJECT="$1" #param validate if [ $# -lt 1 ]; then echo "you must use like this : ./publish.sh <projectname> [tomcat port] [tomcat home dir]" exit fi if [ "$2" != "" ]; then TOMCAT_PORT=$2 fi if [ "$3" != "" ]; then TOMCAT_HOME="$3" fi #shutdown tomcat "$TOMCAT_HOME"/bin/shutdown.sh echo "tomcat shutdown" #check tomcat process tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` echo "current :" $tomcat_pid while [ -n "$tomcat_pid" ] do sleep 5 tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` echo "scan tomcat pid :" $tomcat_pid done #publish project echo "scan no tomcat pid,$PROJECT publishing" rm -rf "$TOMCAT_HOME"/webapps/$PROJECT* cp /my_bak/$PROJECT*.war "$TOMCAT_HOME"/webapps/$PROJECT.war #bak project BAK_DIR=/my_bak/bak/$PROJECT/`date +%Y%m%d` mkdir -p "$BAK_DIR" cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war #remove tmp rm -rf /my_bak/$PROJECT*.war #start tomcat "$TOMCAT_HOME"/bin/startup.sh echo "tomcat is starting,please try to access $PROJECT console url"
上面的shell按照自已實際來定。
有了這份shell腳本,咱們就能夠配置SSH Publishers了,以下 :
參數說明下:
Source files:war包所在路徑,這裏是相對,也能夠絕對路徑
Remove prefix:發佈到tomcat webapp目錄下時不帶war包的父級目錄,只拷貝單獨的war包,因此要移除掉war的目錄
Exec command:執行上面的那段shell,shell是能夠傳參數的,因此這裏是指定shell腳本所在路徑和要傳的參數,按自已實際來填。
好了,到這裏最基本的配置已OK了,咱們能夠試下水了。
-------------------------------------------------------------------------------------------------------------------------開始試水--------------------------------------
回到jenkins管理端首頁,咱們能夠看到剛纔創建的maven項目
點「當即構建」,咱們能夠看到頁面上有信息輸出,以下:
紅色框中部分咱們能夠看到maven install成功了!!!
經過jenkins的publish over ssh插件也成功執行了ssh服務器上的shell腳本,咱們看看tomcat有沒有項目部署上去
能夠看到部署上去且已啓動解壓了。
到這裏一個簡單的配置完成。不正之處請原諒,咱們共同探索jenkins更高級的功能。