jenkins本身作為一款運維利器,具備
1. 持續整合 (continuous integration)的強大能力, 對於生產的版本部署, 有時候會遇到新發的版本出現嚴重bug等問題, 急需進行版本回退,為了解決這種應急問題, 特地介紹下如何使用jenkins做web版本控制,在不同版本之間可以快速切換。2. 持續交付(continuous delivery)
3. 持續部署(continuous deployment)
1. jenkins的「構建」tab中增加構建步驟: execute shell
shell指令碼講解:
# 設定部署的專案名稱2. jenkins的「構建後操作」tab中增加構建步驟: send build artifacts over ssh (通過ssh通道傳送構建好的檔案)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 *;
在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/6. 檢視tomcat的conf/server.xml檔案配置:ll
可見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 精確地列印到票據中,實現...