Jenkins從svn下載項目構建後打war包發佈到遠程Linux服務器[圖文]

Jenkins從svn下載項目構建項目打war包發佈到遠程Linux服務器

需求

公司做了個單體項目,打war包的形式發佈到服務器上,項目初始階段需要不斷的迭代開發,那麼發佈流程是比較麻煩的,所以弄了一個jenkins CIDI持續繼承部署,來簡化後邊的流程,弄好以後,開發好的代碼提交svn主幹,點點jenkins的按鈕,即可自動從svn down最新的代碼,maven構建項目打war包,上傳到服務器,配合shell腳本自動實現舊項目的打包備份,新項目的部署,重啓tomcat。

因爲遠程服務器只有一個端口,同時公司的svn服務器是內網的,所以只能將jenkin安裝到我本地,在本地構建好war包,在部署到遠程服務器。

Jenkins的安裝和插件的安裝

jenkin的安裝不說了,插件的話主要安裝以下:
1.Deploy to container Plugin 發佈到tomcat容器的插件
2. Locale plugin 漢化插件-可以不安裝
3. Maven Integration plugin Maven插件構建項目用的
4. SSH plugin 鏈接遠程服務器要用到的SSH插件
5. Publish Over SSH 將war包發佈到服務器上的插件
6. Subversion SVN插件

配置

1.Global Tool Configuration 全局工具配置中設置好JDK和Maven路徑
在這裏插入圖片描述
2.Configure System 系統設置中,配置好遠程登錄服務器的登錄信息等
在這裏插入圖片描述
需要注意的點
SSH Server Name: 起個名字
Hostname:遠程就寫服務器IP,本地就寫本地ip或者localhost
Username: 服務器用戶名
Remote Directory: 發佈war到遠程服務器的目錄,我這裏並沒有直接發佈到tomcat的wabapp目錄
Passphrase / Password: 服務器的密碼,如果用了祕鑰登錄,這裏填寫祕鑰的密碼
Path to key: 如果用了祕鑰登錄,這裏填寫祕鑰的地址
Key: 填寫祕鑰的內容,這裏需要把-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----都copy上,一開始這裏遇到個坑。
Port:端口號
配置好後,點擊測試連接
在這裏插入圖片描述

new 任務

1.新建一個任務,選擇構建maven項目在這裏插入圖片描述
2.如圖,進行配置,

在這裏插入圖片描述
3. 構建項目
紅色代表報錯
藍色代表成功
黑色強制中斷
黃色是流程大部分成功,但是最後執行腳本的時候無權限導致的
在這裏插入圖片描述
輸出信息
在這裏插入圖片描述
jenkin安裝,會在你本地c盤創建其需要的配置文件等,打包構建項目都會放在這裏,安裝的插件也會放在這裏,所以你就算吧war包刪除了,只要c盤的這個配置沒刪,下次重新安裝jenkins的war包,這些插件還都存在。

總結

弄的時候遇到了一些小坑,這裏提一下,
1.一個是連接ssh服務的時候一直連不上,後來發現是祕鑰的內容copy的不全
2.maven執行命令構建項目的時候報錯了,同時加上你想要打包成的名字,因爲本地和發佈到服務器上的包名是不一樣的。
3.執行shell腳本的時候,遇到了權限問題,請教公司運維同事後解決。

附帶shell腳本,自己改吧改吧就能用

#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT_ADMIN='ROOT'
PWD='你的服務器密碼'


ROOTDIR='/data/tomcat/jenkins_workspace/temp'
TOMCAT_HOME='/data/tomcat/apache-tomcat-8.5.50-test'


#停止tomcat服務
#echo '停止test-tomcat-01'
echo ${PWD}|sudo -S sh ${TOMCAT_HOME}/bin/shutdown.sh
echo ${PWD}|sudo -S  ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs sudo  kill -9

#備份
cp ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}.war  /data/tomcat/jenkins_workspace/bak/${PROJECT_ADMIN}_${DATE}.war


#刪除舊項目
echo ${PWD}|sudo -S rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}*
#rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}.war


#將新的war包放入tomcat中
echo ${PWD}|sudo -S mv ${ROOTDIR}/${PROJECT_ADMIN}.war ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}.war

#移除文件
#rm -rf ${ROOTDIR}/*.war

#啓動tomcat服務
#echo '啓動test-tomcat-01'
echo ${PWD}|sudo -S sh ${TOMCAT_HOME}/bin/startup.sh

發佈了75 篇原創文章 · 獲贊 71 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章