Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)
前提:
這一篇是繼上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真實(shí)項(xiàng)目實(shí)踐。
思路和大致實(shí)現(xiàn)步驟請(qǐng)參照上一篇文章。
注意:這篇文章涉及到兩臺(tái)服務(wù)器:1為測試服務(wù)器。2為正式服務(wù)器。且,兩臺(tái)服務(wù)器都必須安裝了jenkins。
注意2:這里所說的一鍵部署是指從測試服務(wù)器到正式服務(wù)器的發(fā)布功能。
提示:如果出現(xiàn)CLI調(diào)用的權(quán)限或者錯(cuò)誤問題,參考:http://www.cnblogs.com/EasonJim/p/6086018.html
具體操作:
一、配置正式服務(wù)器的工程
選擇構(gòu)建項(xiàng)目時(shí),選擇【構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目】
1、解壓工程:
命令行:
echo [INFO] 備份壓縮操作 call C:\"Program Files"\WinRAR\Rar.exe a -x*\Upload* -x*\ueditor* -x*\UploadFolder* %FilePath%.bak.rar %UnzipPath% echo [INFO] 解壓操作 call c:\"Program Files"\winrar\rar.exe x -ep2 -o+- %FilePath% %UnzipPath%說明:
先備份再解壓,也就是說每一次操作之前都要備份。
1)部署時(shí),比如上傳的文件名為1.rar,那么備份文件為1.rar.bak.rar。
2、還原工程:
命令行:
echo [INFO] 備份壓縮操作 call C:\"Program Files"\WinRAR\Rar.exe a -k -r -s -m1 -x*\Upload* -x*\ueditor* -x*\UploadFolder* -x*\Web.config -x*\DownloadFile* -x*\ErrorLog* -x*\LogFiles* %FilePath%-%BUILD_ID%.restorebak.rar %UnzipPath% echo [INFO] 解壓操作 set "url=%UnzipPath%" call c:\"Program Files"\winrar\rar.exe x?-ep2 -o+- %FilePath% %url:~0,3%說明:
先備份再解壓,也就是說每一次操作之前都要備份。
0)壓縮時(shí)我加入了buildid作為參數(shù),避免還原同一個(gè)時(shí)會(huì)重復(fù)的問題。
1)回滾時(shí),比如上傳備份的文件名為1.rar.bak.rar,那么回滾操作備份文件為1.rar.bak.rar.restorebak.rar。
2)這里由于上面?zhèn)浞莸膲嚎s包是全路徑的,所以我用字符串切割提取到盤符直接解壓。
二、配置測試服務(wù)器的工程
1、一鍵部署工程:
選擇構(gòu)建項(xiàng)目時(shí),選擇【構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目】
1)配置工程信息:
?
2)配置批處理進(jìn)行壓縮:
說明:這里采用規(guī)則的命名方式,且最后會(huì)拷貝到workspace中,因?yàn)閒tp上傳軟件只支持當(dāng)前工作空間的目錄。
批處理如下:
echo [INFO] 壓縮要上傳的文件,這里已經(jīng)排除了一些文件 cd D:\wwwroot\nhq\wwwroot\ call C:\"Program Files"\WinRAR\Rar.exe a -k -r -s -m1 -x*\Upload* -x*\ueditor* -x*\UploadFolder* -x*\Web.config -x*\DownloadFile* -x*\ErrorLog* -x*\LogFiles* -ag{%BUILD_ID%.push} D:\wwwroot\nhq\wwwroot\ move %BUILD_ID%.push.rar %workspace%3)配置FTP上傳:
?
在【Name】上選擇的server是需要手動(dòng)進(jìn)行配置的,如下:
安裝插件【Publish Over FTP】
在【系統(tǒng)管理】->【系統(tǒng)設(shè)置】->【Publish over FTP】->點(diǎn)擊【增加】按鈕,增加一個(gè)要連接的FTP:
注意:
【Source files】表示的不是絕對(duì)路徑,而是jenkins的workpase的路徑,相當(dāng)于相對(duì)路徑,如果要上傳整個(gè)目錄包括子目錄的,最后加上【\**】;
【Remove prefix】表示去除目錄前綴,如果不去除,將會(huì)按照上面的目錄依次創(chuàng)建。
【Remote directory】為ftp的存放目錄,如果上面沒有這個(gè)目錄將會(huì)自動(dòng)創(chuàng)建。
【Exclude files】為要排除的文件和文件夾,上面為參考。
4)配置CLI的調(diào)用服務(wù):
注意:這里是直接調(diào)用正式服務(wù)器的cli服務(wù)。
批處理如下:
echo [INFO] 通過CLI調(diào)用公網(wǎng)Jenkins進(jìn)行解包 java -jar "C:\Program Files (x86)\Jenkins\war\WEB-INF\jenkins-cli.jar" -s http://192.168.199.1:8080/ build Unzip -p FilePath=E:\wwwroot\inetpub\bak\%BUILD_ID%.push.rar -p UnzipPath=E:\wwwroot\inetpub\wwwroot\TestBank --username administrator --password administrator參數(shù)說明參考上面的說明。
5)配置郵件發(fā)送:
?
觸發(fā)點(diǎn)為無論結(jié)果如何都發(fā)送。
2、一鍵回滾工程:
選擇構(gòu)建項(xiàng)目時(shí),選擇【構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目】
1)配置工程信息:
2)配置構(gòu)建選擇參數(shù):
提示:這里的Project就是上面配置的一鍵部署的工程,能自動(dòng)識(shí)別到構(gòu)建ID。
3)調(diào)用CLI進(jìn)行生成環(huán)境的回滾:
批處理如下:
echo [INFO] 通過CLI調(diào)用公網(wǎng)Jenkins進(jìn)行解包 Setlocal enabledelayedexpansion set url="%ProjectName%" set "buildID=" set url=%url::=/% set url=%url:///=/% set url=%url://=/% for /f "tokens=1,2,3,4,5,6* delims=/" %%a in (%url%) do (set "buildID=%%f" ) java -jar "C:\Program Files (x86)\Jenkins\war\WEB-INF\jenkins-cli.jar" -s http://192.169.199.1:8080/ build Restore -p FilePath=E:\wwwroot\inetpub\bak\%buildID%.push.rar.bak.rar -p UnzipPath=E:\wwwroot\inetpub\wwwroot\TestBank --username administrator --password administrator提示:這里上面采用的批處理切割獲取buildid,用于指定要回滾哪個(gè)版本。
4)配置郵件通知:
觸發(fā)點(diǎn):
?
?到此,配置全部搞定。
?
轉(zhuǎn)載于:https://www.cnblogs.com/EasonJim/p/6295372.html
總結(jié)
以上是生活随笔為你收集整理的Jenkins使用FTP进行一键部署及回滚2(Windows)(项目实践)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网协议入门(二)
- 下一篇: 关闭window端口445