1. 程式人生 > >使用開源軟體Jenkins一鍵釋出專案到伺服器

使用開源軟體Jenkins一鍵釋出專案到伺服器

首先Jenkins是什麼呢?就是一種持續整合專案的一款開源軟體,是用java寫的。部署簡單,中文介面,可一鍵從git clone、pull。也可以打包釋出,功能還是很多的,比如可以自動安裝jdk、git、maven等等。在專案構建前後執行相關操作,比如shell指令碼,也可以監控專案構建健康狀態。使用Jenkins的話不管是運維、開發、測試都可以把push完的程式碼一鍵釋出。

搭建步驟其實很簡單,先去官網(https://jenkins.io/)下載一個war包。然後上傳linux伺服器,或者直接用wget命令下載。下載好後可以直接用java -jar jenkins.war 執行。如果安裝了tomcat等web伺服器的話就放入對應的路徑執行伺服器即可。tomcat在webapps下。不推薦使用tomcat,因為war包裡本身就包括了一個內建的伺服器。如果想後臺執行可以用nohup命令。nohup java -jar jenkins.war &  ,指定埠加上 --httpPort=xxxx 。

下載好開啟ip:埠就可以。第一次登入需要一個密碼,隨後可以建立一個管理員賬號。密碼在下圖位置:

那個隨機的數字+字母就是初始化密碼了。賬號預設admin。

Jenkins主介面:

因為我伺服器上已經安裝好了jdk,git,maven等工具,所以這裡就不演示怎麼安裝了,相信大家都會,今天只說Jenkins。

然後在左上角點開系統管理--->全域性工具配置,拉到最底下配置一個maven,點選新增,取消勾選自動安裝,填上自己的maven路徑然後儲存就可以!

回到首頁,我們點選左上角新建任務,輸入一個任務名稱,選擇自由風格的專案就可以。在原始碼管理下,選擇git地址和分支名稱。

如果是svn也是同樣的道理。構建這裡選擇剛才新增的maven外掛。我這裡是直接打包並跳過測試了。目標就是你的maven命令。

其實到這裡基本的步驟就完成了,首先已經克隆了專案,然後maven也打包了,去Jenkins的workspace下就可以看見打包過後的jar包了。

這樣最簡單的辦法就是直接 java -jar 執行jar即可(我這裡是springboot專案),如果不是的話複製到tomcat目錄下。但是都說了是自動化一鍵構建,所以再通過ssh工具操作linux伺服器啟動的話就有點low了。可以在專案構建完成後讓Jenkins幫我們執行shell指令碼檔案,這樣就代替了手動操作。也是很方便的。先提前寫好一個指令碼。這段指令碼還是很好理解的,就算沒學過shell也可以看得懂,但是linux基本命令是要會的。別忘了給指令碼新增可執行許可權:chmod +x restart.sh

#!/bin/bash
echo "restart project..."
#$1 專案名稱 $2 jar名稱
export project_path=/root/.jenkins/workspace/$1
ps -ef|grep java|grep $2|awk '{print $2}' | xargs kill -9
cd ${project_path}
cd target
nohup java -jar $2 > /root/.jenkins/workspace/$1/nohub.out 2>&1 &
echo "SUCCESS!"

在這裡新增shell指令碼命令。我直接把指令碼放在workspace裡面了。如果只有一個專案的話也可以寫死專案名和jar名。我這裡把他當作引數傳進去了,那麼這個指令碼就可以通用別的專案。當然這裡也可以不配git和maven,然後全程使用shell指令碼來操作,不過對指令碼的要求比較高,需要專門學習下。這裡就不貼指令碼了。(我們公司就是全指令碼執行,當然不是我寫的。啊哈哈!!)

BUILD_ID=DONTKILLME
cd /root/.jenkins/workspace
./restart.sh spring-boot-template spring-boot-template-0.0.1-SNAPSHOT.jar

完成後可在控制檯看見日誌檔案,方便找錯。

linux的nohub日誌檔案:目錄位置在上面的指令碼檔案裡,可以進行修改,方便自己檢視。

然後這篇部落格就到這裡了。(本人才疏學淺,如有錯誤純屬正常,歡迎指出!)