前言

Azure DevOps Agent On Linux 與其他 CI/CD 一樣,安裝相當簡單,且可以安裝在 Windwos/macOS/Linux 作業系統上。有很多朋友問到 Linux Agent 與 Windows Agent 有什麼不同,這裡簡單條列一些特性,讓大家理解要哪一種比較適合自己

  1. Linux Agent 一般情況下,執行速度較快,且 Azure Linux VM 較便宜
  2. Windows Agent 一般來說較為安全 (對於資安完全沒經驗的朋友,使用 Windows 會輕鬆一點)
  3. 若您的程式是 .NET Solution (非.NET Core),只能在 Windows 作業系統進行 Build,請選擇 Windows
  4. Java ...等具跨平台特性 Solution,可以在 Linux 與 Windows Agent 執行
  5. 找一個您熟悉的平台,安裝套件時比較不會這麼辛苦


本篇文章將一步步說明如何安裝與設定,給有興趣的朋友參考。若有任何錯誤或建議,請各位前輩不吝提出,謝謝。

若您想要知道如何安裝 Agent  在 Windows 上,請參考這篇:
Azure DevOps Agent 安裝流程說明 (Install Windows Agent)





前置作業

在開始安裝 Linux Agent 之前,我們必須先申請一個 PAT (Personal Access Token),在 Agent 與 Azure DevOps 建立連結時認證使用。

Step 1. 開啟 Azure DevOps,點選右上圖示 > Personal Access token

 

 


Step 2. 點選 New Token



Step 3. 依序輸入名稱、逾期時間。 Scope 選擇 Custom defined:分別在 Agent pools 勾選 Read & manageAuditing 勾選 Read Audit Log。完成後點選建立 (Create)



Step 4. 複製 Token (等等設定會用到)





操作流程

Step 1. 點選專案設定 (Project Configuration) > Agent Pool



 

Step 2. 點選 Default

 

 

Step 3. 點選 New Agent



Step 4. 登入到 Linux,請先確認目前目錄,不要設定在權限較高或 tmp 資料,避免 Agent 自動更新時權限不足,造成無法更新,最後導致這個 Agent 永遠不會啟動。

Azure DevOps 可以設定多個 Agent 且會自動更新,若有 Agent 版本不同,則只會使用版本較高的Agent


輸入下列指令,我們先前往最初的目錄

cd /
ls




Step 5. 接下來,我們建立一個 agent 資料夾

mkdir agent




Step 6. 切換目錄到 agent,並透過 wget 套件下載 Agent 套件

cd agent
sudo wget https://vstsagentpackage.azureedge.net/agent/2.175.2/vsts-agent-linux-x64-2.175.2.tar.gz

您可以在這個網站 https://github.com/Microsoft/azure-pipelines-agent/releases 確定版本號碼,本篇文章撰寫時 Agent 版本是 2.175.2,請依據目前最新的版本為主

若你的 linux 沒有 wget 套件,請先安裝,下列提供 Ubuntu 版本安裝指令

apt update && apt upgrade
apt install wget




Step 7. 我們進行解壓縮,輸入下列指令。解壓縮後如下圖所示,會有相關檔案。

sudo tar zxvf vsts-agent-linux-x64-2.175.2.tar.gz




Step 8. 我們先切回上層目錄,先給予 agent 合適的權限 (請依據需求調整),避免日後自動升級 Agent 時因為權限不夠而升級失敗。指令為

cd..
sudo chmod 777 agent/




Step 9. 切換回 agent 目錄,開始進行 Agent 設定,輸入下列指令

cd agent
./config.sh



Step 10. 依序輸入 Azure DevOps URL、使用 PAT 認證、輸入 Token、輸入 Agent 所屬的 Agent Pool、Agent 名稱...等相關資訊。




Step 11. 將 Agent 設定自動執行,輸入下列指令

sudo ./svc.sh install

之後輸入

sudo ./svc.sh start 啟動服務




Step 12. 回到我們 Azure DevOps,等待約 5分鐘,即可看見 Agent 已經啟動