前言:
因為dotnet在發布站點后,然后再上傳服務時,會因為各種的網速問題,導致站點瞬間掛掉!那么通過一鍵部署,先在測試站點測試好的文件,復制到正式站點上的一個緩沖區,進行預熱配置,之后再本機進行文件替換,速度是相當的快,最終把影響降到最低。
所用到的插件:
文件復制插件,從master復制到slave:【Copy Data To Workspace Plugin】:https://wiki.jenkins-ci.org/display/JENKINS/Copy+Data+To+Workspace+Plugin
注意:此插件很久沒有更新,一次只能是一個目錄!
前提:
必須有兩台服務器,且已經配置了slave的節點,參考:(Windows)http://www.cnblogs.com/EasonJim/p/6054436.html
實現思路:
1、在測試環境應該模擬和生成環境的配置和編譯版本保持是Release狀態,且功能已經滿足預期發布需求。
2、通過文件復制插件,復制測試環境上的部署文件到生成環境上的jenkins工作空間。
3、通過批處理處理不需要覆蓋的文件或者臨時要修改的配置等。
4、利用rar備份生成環境上即將要覆蓋的文件,注意命名上遵循一定規律:日期-項目-文件夾-{BuildID}.bak.rar。
5、利用批處理進行從生成環境的jenkins工作空間上把文件復制到站點上,常用命令:xcopy。
具體的實現步驟:
1、在jenkins上安裝【Copy Data To Workspace Plugin】文件復制插件:
【系統管理】->【管理插件】->點擊【可選插件】->搜索框輸入【Copy Data To Workspace Plugin】


2、新建工程,把上面實現思路配置進去:
新建項目,注意:這里要選擇【構建一個自由風格的軟件】,不然復制文件插件無法復制!

如果你出現了“Waiting for next available executor”,那么有可能是你選擇成了【構建一個多配置項目】
進入項目詳情頁面,填寫備注等信息,注意頁面上的選擇

關聯這個項目這能運行在這個節點上,這里的節點的選擇是通過新建節點時輸入的標簽名稱,注意頁面上的選擇

選中復制文件插件,並指定要從master復制的文件夾,注意頁面上的選擇

添加批處理進行slave的文件夾備份,注意頁面上的選擇

填寫備份的配處理,這里我用了RAR的壓縮命令,所以如果要用RAR的時候,確保機器上已經安裝。且,備份后的文件我寫的比較有規律:

命令:
start c:\"Program Files"\winrar\rar.exe a -k -r -s -m1 -agYYYYMMDDHHMMSS-NN{-Admin-%BUILD_ID%.bak} {要備份到的文件夾} {要備份的文件夾}
再增加一個批處理,進行剛在master復制到slave的工作空間的文件用xcopy命令覆蓋slave上的站點Admin文件夾

這里使用xcopy命令進行復制

命令:
xcopy /y /e /r {slave工作空間上的項目文件夾} {要復制到替換的文件夾}
最后【Save】,可以測試是否成功了。
注意:如果中途沒有截圖的選項,一般默認不選擇,其實也可能根據需要進行選擇。
如果想要在構建完之后,觀察是否成功復制等信息,可以點【增加構建后操作步驟】來增加配置郵件的發送等操作。
后話:
有一鍵部署,那么肯定就有一鍵回滾,可以參考:http://www.cnblogs.com/EasonJim/p/5945266.html
最后是部署環境拓撲圖和流程:http://www.cnblogs.com/EasonJim/p/6007669.html
