Web Deploy是微軟出的一套部署網站工具,它可以用來將建置好的網站部署到Server上,
或是同步不同台IIS主機上的網站,所有的部署動作只要一個Command就可以執行完成,
在執行之前還可以使用差異比較來比對會更新的檔案,
對於有部署太量站台需求的系統架構十分好用,本篇文章將向大家介紹這套工具。
※安裝Web Deployment Tool
※設定Visual Studio單鍵發行功能
Web Deployment Tool目前也整合了Visual Studio的發行功能,
我們可以直接透過Visual Studio來發行我們的網站
※使用MsDeploy部署站台
除了使用VisualStudio部署站台之外,我們也可以使用CommandLine來部署我們的網站,
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。
CI-Sample.WebSite.deploy.cmd /Y /M:http://localhost/MSDeployAgentService "-setParam:'IIS Web Application Name'=CI-Sample.WebSite"
※整合Jenkins自動部署
"%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,可以大大的降低我們部署網站的手續,
還可以輕鬆地同步不同站台之間的內容,
在部署網站之前,還可以先透過測試來比較更新前後的差異,
降低錯誤更新的風險!
關於今天的介紹,歡迎大家一起討論! ^_^
注意:Microsoft Web 平台安裝程序 (WebPI) 將於 2022 年 7 月 1 日停用。有關詳細信息,請參閱此博客文章:https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed