iT邦幫忙

DAY 22
1

使用Jenkins打造.Net CI Server系列 第 22

CI Server 22 - 使用Web Deployment Tool部署網站

  • 分享至 

  • xImage
  •  

Web Deploy是微軟出的一套部署網站工具,它可以用來將建置好的網站部署到Server上,
或是同步不同台IIS主機上的網站,所有的部署動作只要一個Command就可以執行完成,
在執行之前還可以使用差異比較來比對會更新的檔案,
對於有部署太量站台需求的系統架構十分好用,本篇文章將向大家介紹這套工具。
※安裝Web Deployment Tool

  1. 我們可以使用Microsoft Web Platform Installer來安裝
  2. 在Windows7中預設不會安裝Web Deployment Agent Service,
    因此我們必須打開控制台=>程式和功能額外進行安裝
  3. 安裝完成後可看到服務已啟動
  4. 連結網址http://localhost/MSDEPLOYAGENTSERVICE/,若為空白則安裝成功

※設定Visual Studio單鍵發行功能
Web Deployment Tool目前也整合了Visual Studio的發行功能,
我們可以直接透過Visual Studio來發行我們的網站

  1. 先在IIS建立好我們的站台 (空的也可)
  2. 打開我們的網站,選擇發行
  3. 新增設定檔,輸入名稱WebSite.MsDeploy
  4. 設定使用Web Deploy,輸入資料,最後按驗證連線檢查
  5. 可預覽會更新的檔案,按下發行即更新網站
  6. 按下關閉後可看到我們專案出現關於發行的設定

※使用MsDeploy部署站台
除了使用VisualStudio部署站台之外,我們也可以使用CommandLine來部署我們的網站,

  1. 使用指令建置網站,產生部署包

msbuild CI-Sample.sln /p:Configuration=Debug;DeployOnBuild=true;DeployTarget=Package;_PackageTempDir=..\CI-Sample.WebSite.Package


2. 我們可以看到網站的obj\Debug\Package下已經產生部署用的檔案

3. 接下來我們可以使用以下的指令來做網站與部署包的差異比較 (使用/T代表測試部署)

CI-Sample.WebSite.deploy.cmd /T /M:http://localhost/MSDeployAgentService "-setParam:'IIS Web Application Name'=CI-Sample.WebSite"


4. deploy.cmd各項參數的含意可以參考deploy-readme.txt

/T:呼叫含 "-whatif" 旗標的 msdeploy.exe,這將模擬部署。這不會部署該封裝。它會改為建立一份關於您實際部署封裝時將發生什麼情況的報告。
/Y:呼叫不含 "-whatif" 旗標的 msdeploy.exe,這會將封裝部署於目前電腦或目的地伺服器。驗證使用 /T 旗標產生的輸出之後使用 /Y。
/M:<目的地伺服器名稱或服務 URL>
/U:<使用者名稱>
/P:<密碼>
/A:<Basic | NTLM>
指定將使用的認證類型。可能的值是 NTLM 及 Basic。如果指定 wmsvc 提供者設定,預設的認證類型是 Basic,否則預設的認證類型是 NTLM。

  1. 等真正確定要更新時,我們可以使用/Y來更新站台

CI-Sample.WebSite.deploy.cmd /Y /M:http://localhost/MSDeployAgentService "-setParam:'IIS Web Application Name'=CI-Sample.WebSite"

  1. 執行網站查看更新結果

※整合Jenkins自動部署

  1. 打開Jenkins專案首頁,進入設定畫面
  2. 找到Build區段,在建置網站之後新增執行window batch command
  3. 輸入CommandLine指令Deploy站台

"%WORKSPACE%\CI-Sample.WebSite\obj\Debug\Package\CI-Sample.WebSite.deploy.cmd" /Y /M:http://localhost/MSDeployAgentService "-setParam:'IIS Web Application Name'=CI-Sample.WebSite"


4. 儲存並執行建置網站,我們可以看到有進行部署網站

※總結
透過Web Deployment Tool,可以大大的降低我們部署網站的手續,
還可以輕鬆地同步不同站台之間的內容,
在部署網站之前,還可以先透過測試來比較更新前後的差異,
降低錯誤更新的風險!
關於今天的介紹,歡迎大家一起討論! ^_^


上一篇
CI Server 21 - 在每日建置中檢查JavaScript及Css
下一篇
CI Server 23 - 使用Selenium進行瀏覽器自動化測試
系列文
使用Jenkins打造.Net CI Server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
JamesDoge
iT邦高手 1 級 ‧ 2022-12-27 14:14:52

注意:Microsoft Web 平台安裝程序 (WebPI) 將於 2022 年 7 月 1 日停用。有關詳細信息,請參閱此博客文章:https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed

我要留言

立即登入留言