Jenkins使用FTP進行一鍵部署及復原2(Windows)(項目實踐)

來源:互聯網
上載者:User

標籤:操作   tor   get   ima   一鍵   環境   enable   html   參數   

 轉載:http://www.cnblogs.com/EasonJim/p/6295372.htmlJenkins使用FTP進行一鍵部署及復原2(Windows)(項目實踐)前提:

這一篇是繼上一篇http://www.cnblogs.com/EasonJim/p/6092938.html的真實項目實踐。

思路和大致實現步驟請參照上一篇文章。

注意:這篇文章涉及到兩台伺服器:1為測試伺服器。2為正式伺服器。且,兩台伺服器都必須安裝了jenkins。

注意2:這裡所說的一鍵部署是指從測試伺服器到正式伺服器的發布功能。

提示:如果出現CLI調用的許可權或者錯誤問題,參考:http://www.cnblogs.com/EasonJim/p/6086018.html

具體操作:一、配置正式伺服器的工程

選擇構建項目時,選擇【構建一個自由式饒舌的軟體項目】

查看原圖 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)部署時,比如上傳的檔案名稱為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)壓縮時我加入了buildid作為參數,避免還原同一個時會重複的問題。

1)復原時,比如上傳備份的檔案名稱為1.rar.bak.rar,那麼復原操作備份檔案為1.rar.bak.rar.restorebak.rar。

2)這裡由於上面備份的壓縮包是全路徑的,所以我用字串切割提取到盤符直接解壓。

二、配置測試伺服器的工程1、一鍵部署工程:

選擇構建項目時,選擇【構建一個自由式饒舌的軟體項目】

查看原圖1)配置工程資訊:

 

查看原圖2)配置批處理進行壓縮:

查看原圖

說明:這裡採用規則的命名方式,且最後會拷貝到workspace中,因為ftp上傳軟體只支援當前工作空間的目錄。

批處理如下:

echo [INFO] 壓縮要上傳的檔案,這裡已經排除了一些檔案cd D:\wwwroot\nhq\wwwrootcall 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\wwwrootmove %BUILD_ID%.push.rar %workspace%
3)配置FTP上傳:

 

查看原圖

在【Name】上選擇的server是需要手動進行配置的,如下:

安裝外掛程式【Publish Over FTP】

在【系統管理】->【系統設定】->【Publish over FTP】->點擊【增加】按鈕,增加一個要串連的FTP:

查看原圖

注意:

【Source files】表示的不是絕對路徑,而是jenkins的workpase的路徑,相當於相對路徑,如果要上傳整個目錄包括子目錄的,最後加上【\**】;

【Remove prefix】表示去除目錄首碼,如果不去除,將會按照上面的目錄依次建立。

【Remote directory】為ftp的存放目錄,如果上面沒有這個目錄將會自動建立。

【Exclude files】為要排除的檔案和檔案夾,上面為參考。

4)配置CLI的調用服務:

注意:這裡是直接調用正式伺服器的cli服務。

查看原圖

批處理如下:

echo [INFO] 通過CLI調用公網Jenkins進行解包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

參數說明參考上面的說明。

5)配置郵件發送:

 

查看原圖

觸發點為無論結果如何都發送。

查看原圖2、一鍵復原工程:

選擇構建項目時,選擇【構建一個自由式饒舌的軟體項目】

查看原圖1)配置工程資訊:

查看原圖2)配置構建選擇參數:

查看原圖

提示:這裡的Project就是上面配置的一鍵部署的工程,能自動識別到構建ID。

3)調用CLI進行產生環境的復原:

查看原圖

批處理如下:

echo [INFO] 通過CLI調用公網Jenkins進行解包Setlocal enabledelayedexpansionset 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,用於指定要復原哪個版本。

4)配置郵件通知:

查看原圖

觸發點:

查看原圖

 

 到此,配置全部搞定。

Jenkins使用FTP進行一鍵部署及復原2(Windows)(項目實踐)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.