Visual Studio Team Services 簡稱 VSTS 是一個完整的Devops工具
其定價對於前五個使用者免費!!
如果想要私有的Git版控空間,這根本就是一個完美的地方!!
如果你想做CI/CD也不是問題,每個月有240分鐘的免費額度(備註,單一作業持續時間不得超過30分鐘)。
上面都是讚嘆它的好,但,240分鐘,真的夠用嗎!?
我自己體驗,兩個小型 Web 專案,從 Build 到 Release 到 Azure,總共花約5分鐘。
難道一個月你只 Push 上 Git Server 48次嗎!?
答案是有兩種:
- 一個月花 40 美金,可以多一條管線(備註,單一作業持續時間不得超過360分鐘)。
- 本篇的重點,擁有一條私人管線:免費。
想當然,這條私人管線其實就是你地端需要一台主機來做 Build、Release。
今天也是我第一次從無到有設定私有管線(以下通稱Agent),接下來就按照步驟講解了!
首先,先要有一台主機,主機的需求官方說明如下:Windows System Prerequisites
接下來,我們開啟網頁至 VSTS 中的 Agent Pools。
網址結構如下:https://{your-account}.visualstudio.com/_admin/_AgentPool
會看到左側 Default 目前是沒有設定 Agents 的,按下 Download agent 按鈕
在這個頁面,有大致上的操作說明。
按下 Download 後,會開始下載一個 *.zip 的壓縮檔,這就是地端需要的檔案。
下載後,接下來我們要設定/執行以下動作:
- 設定我們帳號的認證
- 解壓縮下載的 *.zip 檔案
- 設定 Agent
- 啟動 Agent 或 設定為一個 Windows 服務自動啟動
設定帳號,先回到 VSTS 的頁面,在右上角點選
新增一個 Personal access tokens。
權限範圍需要設定兩項,其餘不得勾選:
- Agent Pools (read, manage)
- Deployment group (read, manage)
之後按下最下方的 Create Token,就會回到列表頁面。
千萬注意:該Toke只有在這時候看的到,之後就都找不到了喔!!所以,記得複製下來!
這邊有描述,其實是有四種驗證方式的,我們現在使用的是 PAT 模式。
接下來,把我們之前下載的 *.zip Agent的檔案解壓縮。
要注意,解壓縮的路徑,未來會存放 CI/CD 要用的暫存檔案,如果擔心太常操你的硬碟,要注意放置的位置。
再來,我們要開始進行設置 Agent 的 Config。
開啟你的PowerShell,這邊建議要使用系統管理員身份執行(原因稍後解說)。
接換至剛剛解壓縮檔案的路徑下,輸入:
.\config.cmd
執行後,會要求你輸入伺服器網址,這邊指的就是 VSTS 的網址。
結構如下:https://{your_account}.visualstudio.com/
輸入後,會要求你提供驗證模式,這邊我們採用PAT,所以直接按下 Enter
接下來會要求你輸入存取權杖,也就是之前我們產生的Token。
Token驗證成功後,會開始設定
- 代理程式集區 => 採用預設 default
- 代理程式名稱 => 預設抓取電腦名稱
- 工作資料夾 => Agent 抓取版控建置、部屬等暫存檔的檔案根路徑,預設_work
- 將代理程式作為服務執行 => 預設為否
- 是 => 在 Windows 服務中會有一個 VSTS_Agent 服務自動執行。
- 要採用服務執行 PowerShell 必須使用系統管理員身份開啟
- 需提供一組執行服務的本機帳號
- 否 => 每次服務需要透過指令啟動
- 是 => 在 Windows 服務中會有一個 VSTS_Agent 服務自動執行。
做到這裡,如果你是採用服務的方式設定。此時可以前往服務檢查是否已經執行。
若為執行中,回到 VSTS 的 Agent Pools 則可以看到原本的 Default 已經有一台執行中的 Agent
如果,你沒有選擇使用服務來啟動,只需要透過 PowerShell 到解壓縮的資料夾執行:
.\run.cmd
執行後,Agent 就會執行起來。Agent Pools 的狀態也會變為 Online。
最後,教大家怎麼移除 Agent。
透過 PowerShell 到解壓縮的資料夾執行:
.\config remove
就會開始移除設定,此時,還是會需要驗證Token,移除後就回到本篇教學文的開始,空白一片了。
地端的 Agent 架設完,不要忘記去已經設定好的 Builds、Release 調整 Agent queue 部分,這樣才會真的在地端執行阿!
以上,希望可以幫到有興趣的人。
PS: VSTS Releases 的操作方式已經改變為 Pipeline 的方式,害我一度找不到Trigger在哪裡設定。現在已經有文章了唷!