歷史原因,有一段時間,項目開發采用一種模式:項目開發及代碼版本管理在外網,而主要測試在內網。所以為了同步開發進度,每天會將所有服務在外網jenkins上打包好,然后將服務jar包拷進內網,由於內網服務使用分布式部署,不同服務分布在不同服務器上,因此需要手動將各個服務包放到各個服務器上,並執行啟動腳本啟動,供內網測試。這種工作每天都要重復進行,而且整個服務發布耗時較長,jenkins自動化部署在內網又不可行,因此選擇通過執行腳本來自動化發布服務。
下面演示通過腳本演示通過遠程登錄服務器 —> 備份要替換的服務包 —> 拷貝服務包到相應服務器的對應目錄 —> 發布服務的整個流程。
1. 定義常變量
2. 遠程登錄方法
3. 備份上個服務包方法
4. 上傳方法
5. 部署方法
6. 服務包判斷
7. 發包流程控制
上面腳本是實現兩個服務器上的不同服務包的自動化部署,更多服務包在list中累加,並增加判斷邏輯即可,讀者也可以根據此腳本拓展編寫批量停服腳本,批量起服腳本,自動回滾某個版本腳本等。