作者的話
在我司的基礎(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的后臺頁面

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

安裝一下方便的 rebuilder 和 safe 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)限

注冊Linux服務(wù)器
我們默認(rèn)linux服務(wù)器上相關(guān)服務(wù)都安裝配置好了
然后我們就開始在Jenkins后臺進(jìn)行相關(guān)設(shè)置
- 新建節(jié)點
從系統(tǒng)管理 ---> 節(jié)點管理 ---> 新建節(jié)點

我們通過ssh的root用戶訪問遠(yuǎn)程linux服務(wù)器,然后保存成功后,我們可以啟動代理,連接服務(wù)器
創(chuàng)建任務(wù)運行
回到j(luò)enkins控制臺首頁,新建任務(wù),綁定到剛才新建的服務(wù)器上面,

然后選擇運行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è)置一下源碼管理

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

這塊第一句話 是代表不讓 這個jenkins的進(jìn)出不被kill ,后面設(shè)置的環(huán)境變量,是給上面的那個文件使用
然后運行我們編寫的shell文件,執(zhí)行構(gòu)建過程,這樣子我們項目就會在服務(wù)器上運行起來
下面我們修改好源碼的后,只要提交到svn代碼庫,然后在jenkins的后臺再次點擊下構(gòu)建任務(wù),就可以在后臺看到我們修改的內(nèi)容
本次這個過程還是屬于半自動化,還需要自己手動點擊構(gòu)建任務(wù)。