linux jenkins添加windows節點,實現自動化部署

背景:
要基於jenkins的作代碼自動更新部署,現狀是jenkins在linux上,目標服務器的tomcat在windows上,如何將代碼從linux發送到windows未找到合適方案,而且後續如何遠程調用執行windows批處理也是問題。往後若有好思路,會補上,也歡迎你們提建議。node

思路:
本人找到了個取巧的辦法,在linux的jenkins上快捷添加windows jenkins從節點,從而實現基於windows的jenkins自動更新部署,具體流程是在linux的jenkins管理界面操縱windows的從節點jenkins在windows上更新部署等操做。linux

擴展:
本思路也適用於tomcat所在服務器和jemkins所在服務器jdk不相同、或環境不一樣時使用,儘管jekins能夠配置指定jdk等,但有時很差使。而且此思路可想像的空間不少,望能拋磚引玉。windows

一、添加jenkins node
jenkins -> 系統管理 -> 管理節點  -> 新增節點tomcat

不懂的屬性直接點右邊問號服務器

注意availability要如圖一致,點擊保存後,進入下一步。svn

二、下載jar包spa


三、運行jar包
打開從節點服務器,利用cmd命令,執行上述命令.net

四、新建自由風格JOB
配置使用哪一個個節點執行任務blog

而後正常配置svn代碼更新路徑等信息,代碼會直接更新到從節點的機器上。部署

五、在「構建」中添加「Execute Windows batch command」

set "y=%date:~,4%"
set "m=%date:~5,2%"
set "d=%date:~8,2%"

echo  date=%m%-%d%-%y%

xcopy D:\jenkins\workspace\hello\*.* D:\tomcat\hello /E /y /D:%m%-%d%-%y% /C

pause
經過xcopy將當天更新的文件替換到tomcat中,xcopy不懂的參數直接在cmd中輸入 「xcopy /?」 查看中文幫助
本例只替換了當天更新文件,緣由是項目文件太多,全局替換時間較長。可是有一個小遺憾,是刪除的文件不會在tomcat同步刪除,但應該無大礙。

默認拷貝時會忽略隱藏文件,正好忽略了workspace中.svn文件夾。

執行時是直接在windows從節點執行,免去遠程調用的麻煩。

若是項目文件少,直接全局替換也沒問題,去掉/D參數。

xcopy 本例用到參數說明

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]                          

  /D:m-d-y     複製在指定日期或指定日期之後更改的文件。                若是沒有提供日期,只複製那些源時間比目標時間新的文件。   /Y           取消提示以確認要覆蓋現有目標文件。    /C           即便有錯誤,也繼續複製。   /E           複製目錄和子目錄,包括空目錄。與 /S /E 相同。能夠用來修改 /T。

相關文章
相關標籤/搜索