儲存自訂映像並散發至多個實驗室

本文提供儲存已建立虛擬機器 (VM) 的自訂映像的步驟。 文中也說明如何將這些自訂映像散發至組織中的其他 DevTest Labs。

必要條件

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

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

如有需要,請依照從 Azure DevOps 執行映像處理站中的步驟來建立或設定這些項目。

將 VM 儲存為一般化 VHD

將現有的 VM 儲存為一般化 VHD。 提供的範例 PowerShell 指令碼可將現有 VM 儲存為一般化 VHD。 若要使用這個範例,請先將另一個 個Azure PowerShell 工作新增至組建定義,如下圖所示:

Add Azure PowerShell step

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

PowerShell settings

一般化與特製化自訂映像

Azure 入口網站中,從虛擬機器建立自訂映像時,您可以選擇一般化或特製化自訂映像。

  • 特製化自訂映像:沒有在機器上執行 Sysprep/取消佈建。 這表示映像是現有虛擬機器 (快照集) 上 OS 磁碟的完全一致複本。 新機器擁有與這個自訂映像相同的檔案、應用程式、使用者帳戶和電腦名稱。
  • 一般化自訂映像:在機器上執行 Sysprep/取消佈建。 此程序會移除使用者帳戶、移除電腦名稱稱,並刪除使用者登錄區。 目標是將映像一般化,以便在建立另一部虛擬機器時加以自訂。 藉由執行 sysprep 將虛擬機器一般化時,此程序會終結目前的虛擬機器。 目前的虛擬機器已失去作用。

在映像處理站中貼齊自訂映像的指令碼,會針對上一個步驟中建立的任何虛擬機器儲存 VHD。 指令碼會根據 Azure 中資源的標記來識別 VHD。

更新散發映像的設定

流程的下一個步驟是將自訂映像從映像處理站實驗室推送至任何需要它們的其他實驗室。 此流程的核心部分是 labs.json 設定檔。 您可以在映像處理站中包含的 [設定] 資料夾中找到此檔案。

labs.json 設定檔中列出兩個重要事項:

  • 使用訂用帳戶識別碼和實驗室名稱來唯一識別特定目的地實驗室。
  • 應推送至實驗室作為設定根目錄相對路徑的特定映像集。 您也可以指定整個資料夾 (以取得該資料夾中的所有映像)。

以下是列出兩個實驗室的範例 labs.json 檔案。 在此情況下,您會將映像散發至兩個不同的實驗室。

{
   "Labs": [
      {
         "SubscriptionId": "<subscription ID that contains the lab>",
         "LabName": "<Name of the DevTest Lab>",
         "ImagePaths": [
               "Win2012R2",
               "Win2016/Datacenter.json"
         ]
      },
      {
         "SubscriptionId": "<subscription ID that contains the lab>",
         "LabName": "<Name of the DevTest Lab>",
         "ImagePaths": [
               "Win2016/Datacenter.json"
         ]
      }
   ]
}

建立建置工作

使用與上文所述相同的步驟,將 Azure PowerShell 組建工作新增至組建定義。 填入詳細資料,如下圖所示:

Screenshot of a build task to distribute images.

參數如下:-ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -SubscriptionId $(SubscriptionId) -DevTestLabName $(DevTestLabName) -maxConcurrentJobs 20

此工作會取得映像處理站中存在的任何自訂映像,並推送至 Labs.json 檔案中定義的任何實驗室。

將組建排入佇列

散發組建工作完成後請排入佇列,以確保一切正常運作。 組建成功完成之後,新的自訂映像會顯示在您輸入 Labs.json 設定檔的目的地實驗室中。

下一步

在本系列的下一篇文章中,您會使用保留原則和清除步驟來更新映像處理站:設定保留原則並執行清除指令碼