2015年7月23日 星期四

由TFS及Release Management 建立自動部屬服務 - 教學(1)

 ALM   Team Foundation Server   Release Management


背景

兩年前離開前前公司時,正在導入整套微軟ALM架構,自動化部屬當然也是其中一塊; 那時候安裝的產品為第三方的InRelease *
只是當時試了幾次一直沒有成功 >.<

到了2015年,到了新公司後終於有機會再次學習使用這個產品了 J,現在網路上可查到的資源很多,且產品也中文化了!
但由於不是很好上手(對小弟來說),因此把相關的經驗記錄起來。

: InRelease 產品已於2013/11月正式發佈並改名為Release Management for Visual Studio 2013



相關文章



環境

l   Windows 7 Enterprise
l   8 GB Ram
l   Team Foundation Server 2013 Update 5 RC
l   Release Management 2013 (Server, Client, Deploy agent)


Connect to TFS


新增TFS連接

進入【管理【新增
輸入相關資訊後,按下【驗證】


沒有意外的情況下,會跳出此警告:


驗證OK後可直接儲存。

管理Administration


加入使用者

可由【管理使用者新增本機或AD 帳戶。
另一種比較快的方式是由【管理群組】中,直接加入AD ServerTFS Server已設定的群組;這時候加入的群組成員,會一併加入到Release Management Server的使用者清單中。




管理挑選清單

清單有分成:
「技術類型
「階段類型

l   技術類型
在設定環境時,我們會指定這個環境可以部屬哪些種類的產品或程式碼,這些種類的清單便是設定於技術類型; 可參考下圖設定。


l   階段類型
階段可以把它想成一個部屬環境;例如專案中會有開發(Development 測試(Test)StagingProduction(正式)環境。




設定部屬環境 Inventory


設定伺服器 Servers

請先在部屬目標伺服器上安裝Deploy Agent
在各環境安裝後,可在Release Management用戶端介面的【設定路徑】【伺服器】, 掃描並註冊這些伺服器。



設定環境 Environment

l   開啟【設定路徑】【環境】【新增】【新增代理程式型】



以我現在要建立一個自己的測試環境為例,
輸入名稱及選擇擁有者後,再選擇 【連結現有的】: 直接選取已設定好的伺服器。


l   設定「支援的技術類型」
選擇此環境可支援部屬的類型,以我的環境來說,DB是連到另一台主機,所以做以下選擇:




l   設定「階段類型安全性」
指定此部屬環境為Test (測試環境)


l   儲存並關閉




以下是我建立的兩個環境。




設定發行路徑 Release Path


設定發行路徑(發行的流程及環境)

進入【設定路徑】【代理程式型發行路徑】。
請把這個設定想成關卡(Process),每一個關卡需要核准和部屬到一個環境。
勾選自動化表示會自動核准。

PS.
如果是可從TFS自動化建置後做發行,則「接受步驟」必須強制為自動化。
(
請參考下一篇文章)


設定應用程式


元件 Components

進入【設定應用程式】【元件】【新增】【新增代理程式型】
l   名稱打上要部屬的應用程式(或是Sql專案Website …)
l   「來源」可選擇以下:
n   使用應用程式建置 :由TFS自動建置的組建輸出為來源,只要指定封裝的路徑即可。
n   獨立建置:也是由TFS自動建置的組建輸出為來源,除封裝路徑,也手動指定哪一個Team專案的組建定義。
n   外部建置:直接指定路徑(主機名稱和組建封裝的路徑)。

我們在這邊選擇第一種
組件定義:繼承自發行範本,表示會由待會的發行範本所指定。
封裝路徑:[組建置放位置]\ _PublishedWebsites\MyWebsite
PS. 如果是一般應用程式,則輸出會在[組建置放位置]的根目錄,這時候只要設定為:

封裝路徑:[組建置放位置]\ 

    

封裝路徑實際上會是TFS Server上的
C:\Builds\Drops\[
組建定義名稱]\[組件編號]\ _PublishedWebsites\MyWebsite

請參考這片文章在TFS做調整:[TFS] 調整組建輸出路徑以符合Release Management的預設讀取組建路徑


l  「部屬」

選擇【工具】為「XCopy部屬器」。




l  「使用元件發行範本」
因尚未有任何發行範本使用此元件,所以目前是空的。


l  儲存並關閉。


代理程式型發行範本 Release Templates

l   按下【新增】。
l   輸入名稱,並在發行路徑選擇我們在先前步驟已建立好的發行路徑,並選擇一組TFS組建定義
至於「可否從組建觸發發行」暫時不勾選,之後的文章才會說明如果從TFS自動建置成功後觸發自動發行(自動部屬)。


l   點選【建立】後,可看到畫面上出現部署序列。
從畫面左邊的工具箱可看到支援的部署類型,以我們這次的例子是要部署和IIS相關的系統。
操作如下:
n   伺服器TFS Server到部署序列。
n   IIS拉「建立應用程式集區」到部署序列。
n   右鍵點選元件,加入我們剛才設定的元件:MyWebsite 並拉到部署序列。
n   IIS拉「建立Web應用程式」* 到部署序列。

完成畫面如下:


l   設定每一個部署序列的步驟 (For example,實際設定依您環境為主)
n   建立應用程式集區:
DotNetVersion = v4.0
IsAutoStart = true
AppPoolName = “MyAppPool”

n   MyWebsite (元件)
installation Path = “C:\inetpub\wwwroot\MyWebsite”

n   建立Web應用程式:



l   儲存後,這時候可以回到【元件】選擇Mywebsite→【使用元件發行範本】
可以看到原本是空的內容,此時已有我們剛才建立的發行範本囉。

發行


實際部署我們的應用程式

l   進入【發行】【發行】 (或在編輯發行範本時,點選【新增發行】)
l   輸入名稱和選擇方才建立的發行範本,至於建置,可選擇
最新」:直接以最新且成功的組建為部署來源。
選取」:手動選擇任一成功的組建。


l  按下【啟動】以發動發行。
如果成功的話,畫面應如下圖~~


l  可到【流量概觀】查看整體的發行次數
可以看到小弟是失敗了快20次才終於成功  XD



當然也別忘了到主機上的IIS查看一下是否有成功~~



Reference



















沒有留言:

張貼留言