共用方式為


在 Azure DevTest Labs 中設定保留原則

本文涵蓋設定保留原則、清除處理站,以及淘汰組織中其他 DevTest Labs 的舊映像。

必要條件

請務必遵循下文說明,再繼續進行:

下列項目應該已經準備就緒:

  • Azure DevTest Labs 中映像處理站的實驗室
  • 處理站會在一個或多個目標 Azure DevTest Labs 中散發黃金映像
  • 用來將映像處理站自動化的 Azure DevOps Project。
  • 含有指令碼和設定的原始程式碼位置 (在我們的範例中,位於與上述使用的同一個 DevOps Project 中)
  • 協調 Azure PowerShell 工作的組建定義

設定保留原則

設定清除步驟之前,請先定義您要在 DevTest Labs 中保留的歷史映像數目。 遵循從 Azure DevOps 執行映像處理站 一文說明時,您已設定了各種組建變數。 其中一個便是 ImageRetention。 您可以將此變數設定為 1,這表示 DevTest Labs 不會維護自訂映像的歷程記錄。 只有最新的分散式映像可供使用。 如果您將此變數變更為 2,系統就會維護最新的分散式映像和先前的映像。 您可以設定此值,以定義想要在 DevTest Labs 中維護的歷史映像數目。

清除處理站

清除處理站的第一個步驟是從映像處理站中移除黃金映像 VM。 有一個指令碼可以執行這項工作,就像先前的指令碼一樣。 第一步是先將另一個 Azure PowerShell 工作新增至組建定義,如下圖所示:

Screenshot that shows a PowerShell step.

清單中顯示新工作後,請選取該項目並填入所有詳細資料,如下圖所示:

Screenshot that shows the Clean up old images PowerShell task.

指令碼參數為:-DevTestLabName $(devTestLabName)

淘汰舊映像

此工作會移除任何舊映像,只保留符合 ImageRetention 組建變數的歷程記錄。 將其他 Azure PowerShell 組建工作新增至組建定義。 新增之後,請選取工作,然後填入詳細資料,如下圖所示:

Screenshot that shows Retire old images PowerShell task.

指令碼參數為:-ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -SubscriptionId $(SubscriptionId) -DevTestLabName $(devTestLabName) -ImagesToSave $(ImageRetention)

將組建排入佇列

現在您已完成組建定義,請將新組建排入佇列,確保一切正常運作。 組建順利完成之後,新的自訂映像就會顯示在目的地實驗室中。 當您檢查映像處理站實驗室時,不會看到任何佈建的 VM。 如果您將進一步的組建排入佇列,就會看到清除工作從 DevTest Labs 淘汰舊的自訂映像。 淘汰作業會與組建變數中設定的保留值一致。

注意

如果您在本系列最後一篇文章結束時執行管線組建,請先手動刪除您在映像處理站實驗室中建立的虛擬機器,再將新組建排入佇列。 只有在設定所有項目並確認其可順利運作時,才需要手動清除步驟。

摘要

您現在已有一個執行中的映像處理站,可以視需要產生自訂映像並將其散發至實驗室。 此時,只需要妥善設定映像並識別目標實驗室即可。 如上一篇文章所述,位於 [設定] 資料夾中的 [Labs.json] 檔案會指定每個目標實驗室應該提供哪些映像。 當您將其他 DevTest Labs 新增至您的組織時,只需要在新實驗室的 Labs.json 中新增輸入即可。

將新的映像新增至處理站也很簡單。 若您想要在處理站中包含新映像,請開啟 Azure 入口網站並瀏覽至您的處理站實驗室。 選取按鈕以新增 VM,然後選擇您想要的市集映像和成品。 請勿選取 [建立] 按鈕來建立新 VM,而是改為選取 [檢視 Azure Resource Manager 範本]。 將範本以 .json 檔案儲存在存放庫 GoldenImages 資料夾中的某處。 下次執行映像處理站時,就會建立您的自訂映像。

下一步

  1. 排程組建/發行以定期執行映像處理站。 它會定期重新整理處理站產生的映像。
  2. 為您的處理站建立更多黃金映像。 您也可以考慮建立成品來編寫更多 VM 設定工作的指令碼,並在處理站映像中包含成品。
  3. 建立個別的組建/發行,以個別執行 DistributeImages 指令碼。 您可以在變更 Labs.json 時執行此指令碼,並將映像複製到目標實驗室,不需要再次重新建立所有映像。