2017年10月30日 星期一

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 Site Root,一般而言選擇web.config所在的目錄就可以了。

你會發現,FTP Uploader會自動幫你過濾掉source code(.cs)之類的檔案,如果你想手動過濾掉一些你不想upload上去的檔案,下面這邊也可以做些設定:

就這樣,非常簡單好用。

如此一來,你的CD要佈署到任何位置的網站都可以囉。

------------------------------
本系列文章索引位於 http://studyhost.blogspot.tw/2017/02/the-devops-journey-index.html
相關教育訓練: http://www.studyhost.tw/NewCourses/ALM
若這篇文章對您有所幫助,請點選這裡加入FaceBook專頁按讚並追蹤,也歡迎您幫我們分享出去,謝謝您的支持。

沒有留言: