Jenkins | Jenkins實現(xiàn)半自動化部署

作者的話

在我司的基礎(chǔ)設(shè)施軟件中,有一個ecloud平臺,能夠進(jìn)行軟件開發(fā)的持續(xù)集成,通過代碼上傳到svn然后直接同步更新到服務(wù)器,同時也是支持docker的,里面涉及技術(shù)點很多,我們不妨將其簡化,首先來學(xué)習(xí)其中最為核心的Jenkins這部分,并且通過部署一個自動化測試服務(wù),來感受它的魅力,體會自動化部署持續(xù)集成的原理。

Jenkins的安裝

Jenkins的官網(wǎng),下載對應(yīng)的war文件,通過本地命令行運行java -jar jenkins.war來執(zhí)行安裝Jenkins,最好通過訪問localost:8080訪問進(jìn)入相關(guān)設(shè)置

密碼路徑

根據(jù)提示找到密碼,進(jìn)入下一步安裝向?qū)?/p>

然后設(shè)置選擇安裝建議插件,最后需要輸入自己的賬號密碼,下一步進(jìn)入Jenkins的后臺頁面

Jenkins后臺

安裝插件

進(jìn)入系統(tǒng)的插件管理,然后選擇可選插件進(jìn)行安裝

插件管理

安裝一下方便的 rebuildersafe restart,這兩個插件分別是用來重建項目方便和重啟系統(tǒng)的方便

基礎(chǔ)配置

進(jìn)入系統(tǒng)管理 ---> 全局安全配置

全局安全配置

然后選擇 安全矩陣 ,進(jìn)行權(quán)限設(shè)置

添加admin用戶組,設(shè)置好所有所有權(quán)限,然后添加用戶

系統(tǒng)管理 ----> 用戶管理 -----> 新建用戶

新建用戶

新建好用戶同樣需要給這個用戶設(shè)置權(quán)限,一般用戶都要需要其他權(quán)限,不能給普通用戶設(shè)置超級管理員權(quán)限

設(shè)置新增用戶權(quán)限

注冊Linux服務(wù)器

我們默認(rèn)linux服務(wù)器上相關(guān)服務(wù)都安裝配置好了

然后我們就開始在Jenkins后臺進(jìn)行相關(guān)設(shè)置

  • 新建節(jié)點

從系統(tǒng)管理 ---> 節(jié)點管理 ---> 新建節(jié)點

節(jié)點配置

我們通過ssh的root用戶訪問遠(yuǎn)程linux服務(wù)器,然后保存成功后,我們可以啟動代理,連接服務(wù)器

創(chuàng)建任務(wù)運行

回到j(luò)enkins控制臺首頁,新建任務(wù),綁定到剛才新建的服務(wù)器上面,

限制任務(wù)運行節(jié)點

然后選擇運行shell腳本

shell

然后就可以執(zhí)行構(gòu)建,運行當(dāng)前任務(wù),測試是否生效。

構(gòu)建自動化部署

示意圖

我們自動化構(gòu)建的主要步驟如上圖,接著我們開始在jenkins后臺構(gòu)建這個任務(wù)

里面通過一個shell腳本來完成這個過程

#!/usr/bin/env bash
#編譯+部署order站點

#需要配置如下參數(shù)
# 項目路徑, 在Execute Shell中配置項目路徑, pwd 就可以獲得該項目路徑
# export PROJ_PATH=這個jenkins任務(wù)在部署機(jī)器上的路徑

# 輸入你的環(huán)境上tomcat的全路徑
# export TOMCAT_APP_PATH=tomcat在部署機(jī)器上的路徑

### base 函數(shù)
killTomcat()
{
    pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
    echo "tomcat Id list :$pid"
    if [ "$pid" = "" ]
    then
      echo "no tomcat pid alive"
    else
      kill -9 $pid
    fi
}
cd $PROJ_PATH/order
mvn clean install

# 停tomcat
killTomcat

# 刪除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/ROOT
rm -f $TOMCAT_APP_PATH/webapps/ROOT.war
rm -f $TOMCAT_APP_PATH/webapps/order.war

# 復(fù)制新的工程
cp $PROJ_PATH/order/target/order.war $TOMCAT_APP_PATH/webapps/

cd $TOMCAT_APP_PATH/webapps/
mv order.war ROOT.war

# 啟動Tomcat
cd $TOMCAT_APP_PATH/
sh bin/startup.sh

這塊內(nèi)容不理解,自己去學(xué)習(xí)理解吧,我這就不多解釋了

然后我們像上面一樣新建任務(wù),只需設(shè)置一下源碼管理

設(shè)置svn

然后構(gòu)建命令,需要區(qū)別設(shè)置一下

填寫shell

這塊第一句話 是代表不讓 這個jenkins的進(jìn)出不被kill ,后面設(shè)置的環(huán)境變量,是給上面的那個文件使用

然后運行我們編寫的shell文件,執(zhí)行構(gòu)建過程,這樣子我們項目就會在服務(wù)器上運行起來

下面我們修改好源碼的后,只要提交到svn代碼庫,然后在jenkins的后臺再次點擊下構(gòu)建任務(wù),就可以在后臺看到我們修改的內(nèi)容

本次這個過程還是屬于半自動化,還需要自己手動點擊構(gòu)建任務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容