jenkin如何實現web版本控制 回退

2022-05-18 05:57:25 字數 3021 閱讀 8277

jenkins本身作為一款運維利器,具備

1. 持續整合 (continuous integration) 

2. 持續交付(continuous delivery)

3. 持續部署(continuous deployment)

的強大能力, 對於生產的版本部署, 有時候會遇到新發的版本出現嚴重bug等問題, 急需進行版本回退,為了解決這種應急問題, 特地介紹下如何使用jenkins做web版本控制,在不同版本之間可以快速切換。

1. jenkins的「構建」tab中增加構建步驟: execute shell

shell指令碼講解:

# 設定部署的專案名稱

project_name="optimus-mobile"

# 清理掉上次部署遺留下的專案壓縮包

rm -rfv /data/work/.jenkins/jobs/$/workspace/*.tar.gz;

# 切換到jenkins部署後打包tar.gz存放的目錄空間

cd /data/work/.jenkins/jobs/$/workspace;

touch rev.$

# 把job的構建編碼作為版本號存放到rev檔案中(對於svn**管理的,可以使用svn的提交id作為版本號)

echo $build_number > rev.$

# 對workspace空間中的所有檔案打包成tar.gz

tar zcvf $.tar.gz *;

2. jenkins的「構建後操作」tab中增加構建步驟: send build artifacts over ssh (通過ssh通道傳送構建好的檔案)

在exec command框中插入如下指令碼:

#定義當前最新版本的tomcat目錄(裡面是apache tomcat解壓檔案)

project_deploy_home="/data/work/optimus-mobile"

# 定義版本的存放目錄(裡面儲存了該項目的所有的版本)

project_release_home="/data/work/release/optimus-mobile"

#定義專案名稱

project_name="optimus-mobile"

#定義版本號所在的檔名稱

project_checkout_rev_file="rev.$"

#定義最新的版本存放的資料夾上級目錄(tomcat中docs是配置指向這裡)

project_web_home="/data/work/web"

# 設定catalina_base(用於後面的tomcat啟動)

catalina_base="/data/work/optimus-mobile"

#定義當前構建的版本檔案所在的資料夾

work_fold="/data/work/jenkins-deployer-upload/$/$/"

#進入當前構建的版本資料夾

cd $

#解壓tar

tar zxvf *.tar.gz

#刪除tar

rm *.tar.gz

#獲取版本號儲存檔案中儲存的版本號值

rev=`cat $/$`

#定義新版本的資料夾名稱(帶上.版本號)

rev_project="$.$"

#刪除同版本號的資料夾(如果有)

rm -rf "$/$"

#新建新版本對應的資料夾

mkdir "$/$"

#把tar解壓後的檔案全部移動到新建的版本資料夾

mv * "$/$"

#進入tomcat中當前指向的資料夾目錄的上級

cd $

# 刪除該目錄(這是個軟鏈結)

rm $

# 重新建立軟鏈結, 指向最新的版本號

ln -s "$/$" $

# 關閉tomcat

sh $/bin/shutdown.sh -force;

sleep 10;

# 刪除tomcat中的日誌

rm -f $/logs/*;

#重啟tomcat

sh $/bin/startup.sh

3. 配置完畢後,儲存jenkins, 立即構建例項

藍色球表示構建成功, build_id= 27

4. 此時檔案已經上傳生產伺服器.

看下 /data/work/release/optimus-mobile目錄下的檔案:

看到裡面存了兩個版本。

5. 檢視最新版本資料夾

cd /data/work/web/

ll

6. 檢視tomcat的conf/server.xml檔案配置:

可見tomcat的部署目錄指向的是 

/data/work/web/optimus-mobile

路徑, /data/work/web/optimus-mobile 路徑真實是軟鏈結指向最新的

/data/work/release/optimus-mobile/optimus-mobile.27

# 進入optimus-mobile正式版本目錄資料夾上級

cd /data/work/web/# 刪除軟鏈結

rm optimus-mobile

ln -s /data/work/release/optimus-mobile/optimus-mobile.25 optimus-mobile

完畢~~~~~~~~~~~~~~~~~~~~~~~~

Jenkin郵件收發實現原理及過程詳解

一 配置 jenkins 郵箱的全域性配置 檢查是否已安裝外掛程式email extension plugin 獲取 qq 郵箱授權碼 進入 qq 郵箱 設定 賬戶 配置 jenkins 郵箱的全域性配置 系統管理 系統設定 完成郵箱 配置 測試是否配置正確 第 次構建日誌 構建專案 構建結果 本郵...

web 如何實現精準列印

在 web 系統中,列印是必不可少的乙個功能,但也是乙個比較棘手的問題。如果完全自己開發,由於涉及瀏覽器的侷限性 js 相容性 穩定性等因素,往往耗時長 工作量大,最終嚴重影響專案週期。特別地,在 web 環境下,套打需求的實現時難度更大,此時需要將瀏覽器中呈現的 html 精確地列印到票據中,實現...

web 如何實現精準列印

在 web 系統中,列印是必不可少的乙個功能,但也是乙個比較棘手的問題。如果完全自己開發,由於涉及瀏覽器的侷限性 js 相容性 穩定性等因素,往往耗時長 工作量大,最終嚴重影響專案週期。特別地,在 web 環境下,套打需求的實現時難度更大,此時需要將瀏覽器中呈現的 html 精確地列印到票據中,實現...