1. 程式人生 > >轉 jenkins-整合git ssh maven spring-boot實現一鍵部署啟動

轉 jenkins-整合git ssh maven spring-boot實現一鍵部署啟動

安裝好jenkins java maven git ssh

點選“系統管理”配置一下工具

這裡寫圖片描述

配置jdk

這裡寫圖片描述

配置git

這裡寫圖片描述

配置maven

這裡寫圖片描述

當然也可以自動安裝,點選apply並儲存

點選系統設定

這裡寫圖片描述

配置一下發郵件的地址,構建失敗後能郵件通知

這裡寫圖片描述

ctrl+f找到郵件通知,配置發件,我是用的QQ郵箱

這裡寫圖片描述

這個地方的發件箱需要和剛才Jenkins Location配置的“系統管理員郵件地址”一致(試了好久一直失敗╮(╯▽╰)╭,最後在晚上找到原因,就是這個)

配置完後勾選“通過傳送測試郵件測試配置”測試是否配置好

這裡寫圖片描述

輸入一個收件郵箱,點選“Test Configuration”,出現“Email was successfully send”,表示配置成功!

安裝外掛publish over SSH,這個工具能將打包好的檔案傳送到linux,也能夠執行指令碼,後邊會用到

這裡寫圖片描述

點選系統設定,ctrl+f找到Publish over SSH,配置

這裡寫圖片描述

Passphrase:這個是ssh keygen生成時的密碼 
Path to key:私鑰地址 
Name:隨便寫 
Hostname:遠端主機地址 
Username:登入名 
Remote Directory:遠端地址 
點選高階還能設定超時時間,代理等等 
配置好後點擊“Test Configuration”測試連線,失敗的話可能是沒有將共要新增到遠端主機的authorized_keys檔案,解決辦法可以參考

http://blog.csdn.net/qbmmj/article/details/72152354 

單向登陸的操作過程(能滿足上邊的目的):
1、登入A機器 
2、ssh-keygen -t [rsa|dsa],將會生成金鑰檔案和私鑰檔案 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 檔案複製到B機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,從A機器登入B機器的目標賬戶,不再需要密碼了;(直接執行 #ssh 192.168.20.60 )


重新點選測試,出現提示“success”,配置成功! 
至此,基本的環境配置完成!

現在開始專案配置

新建一個maven專案

這裡寫圖片描述

輸入名稱,選中maven,點選ok

這裡寫圖片描述

因為已經建了一個,所以提示重名╮(╯▽╰)╭

開始專案配置

首先新增一點描述資訊~

這裡寫圖片描述

勾選一下“丟棄舊的構建”,可以節省點磁碟空間

這裡寫圖片描述

勾選“引數化構建過程”,新增一個版本號!

這裡寫圖片描述

勾選“在必要的時候併發構建”,這樣就不會排隊了

這裡寫圖片描述

在“原始碼管理”中選中git並配置

這裡寫圖片描述

在“構建設定”中勾選“E-mail Notification”這樣構建失敗了就會發用件通知你了^_^

這裡寫圖片描述

在“構建後操作”中點選“增加構建後操作步驟”,選中“Send build artifacts over SSH”

這裡寫圖片描述

配置“Send build artifacts over SSH”

這裡寫圖片描述

Name:這個是從剛才在“系統設定”裡配置的“Publish over SSH”中選擇的 
Source files:當前構建下你要傳送的檔案 
Remove prefix:需要移除的字首 
Remote directory:傳送的遠端路徑(會在剛才“系統設定”中配置的“Remote directory”後追加) 
Exec command:傳送完成後執行的命令或者指令碼(這裡的shell指令碼能夠啟動專案,實現一鍵啟動^_^)

這裡貼出指令碼(由於不懂shell指令碼,所以只能將就著用o(╯□╰)o)

#!/bin/bash
FOLDER="/root/server/bak/"
FILE="/root/server/qbmmj.jar"
FOLDERTEST="/root/server/bak/qbmmj/"
#time
PREFIX="time="
TIME=`date +%F`
TIMES=`date +%T`
KONGGE="--"
VER="1.5"
#關掉上次啟動的專案
ID=`netstat -nlp | grep -w 8094 | sed -r 's#.* (.*)/.*#\1#'`
#echo "port is :$ID"
kill -9 $ID
#備份
if [ ! -d "$FOLDER" ]
then
        mkdir /root/server/bak
fi
if [ ! -d "$FOLDERTEST" ]
then
        mkdir /root/server/bak/qbmmj
fi
if [ -f "$FILE" ]
then
cp /root/server/qbmmj.jar /root/server/bak/qbmmj/qbmmj$VER$PREFIX$TIME$KONGGE$TIMES.jar
rm -f /root/server/qbmmj.jar
fi
mv /root/server/qbmmj-v1.0.jar /root/server/qbmmj.jar
#nohup /usr/java/jdk1.8.0_131/bin/java -jar /root/qbmmj/test-0.0.1-SNAPSHOT.jar &
#啟動
/usr/local/jdk/bin/java -jar /root/server/qbmmj.jar
#echo "start success!"
exit 0

點選高階還可以設定超時時間等

注: 
這個地方執行的時候有可能會卡在控制檯導致構建無法完成,我的解決辦法是通過daemon來啟動,將日誌輸出到檔案 
daemon的安裝闊以參考http://blog.csdn.net/qbmmj/article/details/72152479 
點選“apply”並儲存

到此為止,配置完成!

點選“ Build with Parameters”,點選“開始構建”

這裡寫圖片描述

左側可以檢視正在進行的構建

這裡寫圖片描述

點進去後能夠檢視詳情,點選“Console Output”能檢視控制檯列印資訊

這裡寫圖片描述

出現“Finished:SUCCESS”,構建成功~^_^

首頁我的檢視中也能檢視構件狀態

這裡寫圖片描述