共用方式為


從 Azure DevOps 執行映像處理站

本文說明從 Azure DevOps (舊稱 Visual Studio Team Services) 執行映像處理站的所有必要準備工作。

注意

任何協調流程都將運作! Azure DevOps 並非必要。 映像處理站是使用 Azure PowerShell 指令碼來執行,因此可以使用 Windows 工作排程器、其他 CI/CD 系統等手動執行。

建立映像處理站的實驗室

設定映像處理站的第一個步驟,是在 Azure DevTest Labs 中建立實驗室。 此實驗室是映像處理站實驗室,我們可在其中建立虛擬機器並儲存自訂映像。 此實驗室會被視為整體映像處理站流程的一部分。 建立實驗室之後,請務必儲存名稱,因為稍後會用到它。

指令碼和範本

您的小組想要採用映像處理站的下一個步驟,是了解哪些功能可以使用。 DevTest Labs GitHub 存放庫公開提供映像處理站指令碼和範本。 以下是映像處理站和指令碼大綱:

  • 映像處理站。 這是根資料夾。
    • 設定。 映像處理站的輸入
      • GoldenImages。 此資料夾包含 JSON 檔案,這些檔案代表自訂映像的定義。
      • Labs.json。 小組註冊以接收特定自訂映像的檔案。
  • 指令碼。 映像處理站的引擎。

本節中的文章提供有關這些指令碼和範本的詳細資料。

建立 Azure DevOps Team 專案

Azure DevOps可讓您儲存原始程式碼,在一個地方執行 Azure PowerShell。 您可以排程定期執行,讓映像保持最新狀態。 利用適合的功能來記錄結果,以便診斷任何問題。 不過使用 Azure DevOps 並不是必要條件,您可以使用任何可以連接 Azure 且可以執行 Azure PowerShell 的載入器/引擎。

如果您有想要改用的現有 DevOps 帳戶或專案,請略過此步驟。

若要開始使用,請在 Azure DevOps 中建立免費帳戶。 請造訪 https://www.visualstudio.com/ 並選取 Azure DevOps (舊稱 VSTS) 下方的 [免費開始使用]。 您必須選擇唯一的帳戶名稱,且務必選擇使用 Git 管理程式碼。 建立帳戶之後,請將 URL 儲存至您的 Team 專案。 以下是範例 URL:https://<accountname>.visualstudio.com/MyFirstProject

向 Git 簽入映像處理站

映像處理站的所有 PowerShell、範本和設定都位於公用 DevTest Labs GitHub 存放庫。 將程式碼放入新 Team 專案的最快方式,是匯入存放庫。 匯入整個 DevTest Labs 存放庫中的提取 (這樣您就可以取得額外的文件和樣本)。

  1. 請造訪您在前一步驟中建立的 Azure DevOps 專案 (URL 類似 https://<accountname>.visualstudio.com/MyFirstProject)。

  2. 選取 [匯入存放庫]

  3. 輸入 DevTest Labs 存放庫的複製 URLhttps://github.com/Azure/azure-devtestlab

  4. 選取匯入

    Screenshot that shows Import Git repo.

如果您決定只簽入所需的確切項目 (映像處理站檔案),請遵循這裡所述的步驟,以複製 Git 存放庫且只推送位於 scripts/ImageFactory 目錄的檔案。

建立組建並連接 Azure

此時,您已將來源檔案儲存在 Azure DevOps 的 Git 存放庫中。 現在,您必須設定管線來執行 Azure PowerShell。 您可以使用許多選項來執行這些步驟。 在本文中,您會使用組建定義以簡化流程,但組建定義也可適用於 DevOps 組建、DevOps 發行 (單一或多重環境)、其他執行引擎,例如 Windows 工作排程器或任何其他可執行 Azure PowerShell 的載入器。

注意

請務必記住,當要建立的自訂映像很多 (10 個以上) 時,有些 PowerShell 檔案的執行時間會很長。 免費裝載 DevOps 組建/發行代理程式的逾時設定為 30 分鐘,因此在開始建置許多映像之後,就無法使用免費裝載的代理程式。 不管您決定使用哪一種載入器,均會套用此逾時限制,所以最好提前確認您可以為長時間執行的 Azure PowerShell 指令碼延長一般逾時設定。 若是使用 Azure DevOps,您可以使用付費裝載的代理程式或使用您自己的組建代理程式。

  1. 若要開始,請在 DevOps 專案的首頁上選取 [設定組建]

    Screenshot that shows Set up Build button.

  2. 指定組建的名稱 (例如:組件映像並傳遞至 DevTest Labs)。

  3. 選取的組建定義,然後選取 [套用] 以建立您的組建。

  4. 在這個階段,您可以選擇 [裝載] 以取得組建代理程式。

  5. 儲存組建定義。

    Screenshot that shows Build definition.

設定組建變數

若要簡化命令列參數,請將驅動映像處理站的索引鍵值封裝成一組組建變數。 選取 [變數] 索引標籤,然後您會看到數個預設變數的清單。 以下是要輸入 Azure DevOps 的變數清單:

變數名稱 備註
ConfigurationLocation /Scripts/ImageFactory/Configuration 此位置是存放庫中 Configuration 資料夾的完整路徑。 如果您匯入上述整個存放庫,左邊的值是正確的。 否則,請更新以指向 Configuration 位置。
DevTestLabName MyImageFactory Azure DevTest Labs 用作映像產生處理站的實驗室名稱。 如果您沒有實驗室,請建立。 請確定實驗室位於服務端點可存取的相同訂用帳戶中。
ImageRetention 1 各類型要儲存的映像數目。 將預設值設為 1。
MachinePassword ******* 虛擬機器的內建系統管理員帳戶密碼。 此帳戶是暫時性的,因此請確定其安全無虞。 選取右側的小鎖圖示,確定它是安全的字串。
MachineUserName ImageFactoryUser 虛擬機器的內建系統管理員帳戶使用者名稱。 此帳戶是暫時性的。
StandardTimeoutMinutes 30 我們應該等待的一般 Azure 作業逾時。
SubscriptionId 0000000000-0000-0000-0000-0000000000000 實驗室所在且服務端點可以存取的訂用帳戶識別碼。
VMSize Standard_A3 建立步驟所要使用的虛擬機器大小。 建立的虛擬機器是暫時性的。 大小必須是為實驗室啟用的大小。 請確認有足夠的訂用帳戶核心配額

Screenshot that shows Build variables.

連接到 Azure

下一個步驟是設定服務主體。 服務主體是 Microsoft Entra ID 中的身分識別,可讓 DevOps 組建代理程式代表使用者在 Azure 中操作。 若要進行設定,請從新增您的第一個 Azure PowerShell 組建步驟開始。

  1. 選取 [新增工作]
  2. 搜尋 Azure PowerShell
  3. 找到之後,選取 [新增] 將工作新增至組建。 當您選取 [新增] 時,您會看到工作在左側顯示為 [新增]。

Screenshot that shows Set up PowerShell step.

設定服務主體的最快方式是讓 Azure DevOps 為您執行設定。

  1. 選取您剛剛新增的工作
  2. 在 [Azure 連線類型] 中,選取 [Azure Resource Manager]
  3. 選取 [管理] 連結以設定服務主體。

如需詳細資訊,請參閱這篇部落格文章。 當您選取 [管理] 連結時,系統會引導您前往DevOps 的右方 (部落格文章中的第二個螢幕擷取畫面) 來設定 Azure 的連線。 設定連線時,請務必選擇 [Azure Resource Manager 服務端點]

完成組建工作

如果您選取組建工作,您會在右窗格中看到應該填入的所有詳細資料。

  1. 首先,將組建工作命名為:建立虛擬機器

  2. 選擇 [Azure Resource Manager],然後選擇您所建立的服務主體

  3. 選擇 [服務端點]

  4. 在 [指令碼路徑] 中,選取右邊的 … (省略符號)

  5. 瀏覽至 MakeGoldenImageVMs.ps1 指令碼。

  6. 指令碼參數應類似:-ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -DevTestLabName $(DevTestLabName) -vmSize $(VMSize) -machineUserName $(MachineUserName) -machinePassword (ConvertTo-SecureString -string '$(MachinePassword)' -AsPlainText -Force) -StandardTimeoutMinutes $(StandardTimeoutMinutes)

    Screenshot that shows Complete the build definition.

將組建排入佇列

請將新組建排入佇列,藉此確認您正確完成所有設定。 當組建執行時,請切換至 Azure 入口網站,然後在映像處理站實驗室中選取 [所有虛擬機器],以確認一切正常運作。 您應該會在實驗室中看到建立了三部虛擬機器。

VMs in the lab

下一步

根據 Azure DevTest Labs 設定映像處理站的第一個步驟已完成。 在本系列中的下一篇文章中,您將學習如何將這些虛擬機器一般化並儲存至自訂映像。 然後將將這些虛擬機器散發到所有其他實驗室。 請參閱下一篇系列章:儲存自訂映像並散發至多個實驗室