the DevOps journey - 在VSTS的CI流程中透過FTP實現自動佈署
一般來說,我們在進行VSTS教育訓練時,都透過Azure Web Site做CI後的自動佈署,達成一個基本的CD流程。 要在VSTS的Build中『順便』將Build好的成果佈署到某一個Azure Web Site上,基本跟喝水一樣簡單,因為VSTS的Build definition範本中,預設就有這個功能: 你會發現,建立出來的Build Process當中,有預設的Azure App Service Deploy這個task: 把該填的資料填一下,就可以Build完順便自動將Build好的結果佈署到某個azure網站,這樣很讚,自動到你不知道怎麼回事就完成了。 但,如果你一開始建立的範本忘了選Deploy,也可以手動加上這個Task: 很容易,對不對? 但學員卻常常有一個問題。 公司高層考慮了很久之後,終於想通了願意用VSTS或TFS,但問題是要佈署的網站不是Azure(因為這部分依舊沒想通,覺得在雲上太不安全或太貴了,堅持要用自己家裡或其他hosting的IIS),那怎麼辦呢? 沒問題,把Azure App Service Deploy換成FTP就好啦,你可以在 Visual Studio Marketplace中找到一個免費的FTP Uploader套件: 位於 https://marketplace.visualstudio.com/items?itemName=januskamphansen.ftpupload-task ,點選上圖中的Install安裝到你的VSTS或TFS站台之後,你就會在UtilityTasks中看到一個新的FTP Uploader套件: 和VSTS裡面的 FTP Upload task不同的是,它相對的比較直覺,並且會自動幫你過濾掉不該上傳到網站上的一些檔案(例如.cs之類的source code),我們可以用它來取代原本的Azure App Service Deploy,將一些該設定的參數設定一下,就可以完成自動佈署囉: 留意上面的參數,以我們熟悉的Azure Web Site為例,帳號密碼欄位你不會有任何懸念,而FTP Address指向root即可,Remote Path如果對照Azure Web sites則是/site/wwwroot,而source path可以用下拉的方式選擇,拿asp.net來說,指定Web S