iT邦幫忙

2023 iThome 鐵人賽

DAY 27
1
DevOps

Azure DevOps Troubleshooting and best practices 系列 第 27

Azure Pipeline – 自行建立清理代理程式作業資料夾 Pipeline

  • 分享至 

  • xImage
  •  

前言

前一篇 Azure Pipeline - 代理程式日常維護工作 文章中,我們說明了 Azure Pipeline 內建的代理程式維護工作,透過排程的方式,協助平台維護人員定期清理代理程式內過時的資料。在這一篇文章中,我們將較細一點說明代理程式內重要的資料夾,並透過自行建立的清理工作 Pipeline,讓代理程式維護工作更有彈性。**

https://ithelp.ithome.com.tw/upload/images/20231012/200914941i04EUpihg.jpg

 
 

重要資料夾說明

若你曾經有安裝代理程式與檢視其工作區資料夾經驗,你應該會發現每次 Pipeline 工作執行皆會產生一個工作資料夾,其名稱為代號,內容有 s、a、b、Test Result ..等資料夾 (s for Source, a for Artifact, b for binary,Test Result 為測試結果)。一般來說,使用者不需要知道這麼詳細,只需要知道代理程式變數即可進行操作。

舉例來說:
$(Agent.HomeDirectory) 表示安裝代理程式的資料夾。 此資料夾包含代理程式的程式碼和資源。
範例:E:\agent

$(Agent.RootDirectory) 表示此代理程式的工作目錄,其中為每個建置或發佈建立子資料夾。
範例:D:\agent_work

$(Agent.WorkFolder) 代表目前代理程式的工作資料夾,$(Agent.WorkFolder)\1 代表目前管道的工作資料夾。(通常第一個管道將放在$(Agent.WorkFolder)\1 中,$ (Agent.WorkFolder)\1 代表目前管道的工作資料夾。第二個 $(Agent.WorkFolder)\2...,以此類推)

$(Agent.ReleaseDirectory) 表示在發佈部署期間將工件下載到的目錄。 如果需要將工件下載到代理,則在每次部署之前都會清除該目錄。
範例:E:\agent_work\r1\a

 
 

如何設定定期清理

雖然 Azure Pipeline 有保留設定 (請見Azure Pipeline 危機處理 - Roll back Retention 章節),但使用量較大的平台管理者仍可以設定 Pipeline 與排程來清理工作資料來夾,確保代理程式可用性。建立方式相當簡單,只須建立一個新的 Pipeline,加入下列 Task 即可。

steps:
- task: DeleteFiles@1
  displayName: 'clean folded: $(Agent.WorkFolder)'
  inputs:
    SourceFolder: '$(Agent.WorkFolder)'

若要設定排程,只需要加入下列範例即可
詳細範例可以參考 Azure Pipeline Trigger 常見問題與最佳實踐Scheduled Trigger 章節

schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build

如此一來,平台管理人員可以依據日常維運情境,自訂其清理內容與順序,達到更好的維運穩定。


上一篇
Azure Pipeline - 代理程式日常維護工作
下一篇
Azure Pipeline - YAML 如何範本化工作與作業
系列文
Azure DevOps Troubleshooting and best practices 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言