從 Azure DevOps 執行映射處理站

本文涵蓋從 Azure DevOps 執行映射處理站所需的所有準備工作(先前稱為 Visual Studio Team Services)。

注意

任何協調流程引擎都能夠運作! Azure DevOps 並非必要專案。 映射處理站是使用 Azure PowerShell 腳本執行,因此可以使用 Windows 工作排程器、其他 CI/CD 系統等等手動執行。

建立映射處理站的實驗室

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

腳本和範本

為您的小組採用映射處理站的下一個步驟是瞭解可用的功能。 映射處理站腳本和範本可在 DevTest Labs GitHub 存放庫中 公開 取得。 以下是片段的大綱:

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

本節中的文章提供這些腳本和範本的詳細資料。

建立 Azure DevOps 小組專案

Azure DevOps 可讓您儲存原始程式碼,並在一個地方執行 Azure PowerShell。 您可以排程週期性執行,讓映射保持在最新狀態。 記錄結果有良好的功能可診斷任何問題。 不過,使用 Azure DevOps 並非必要專案,您可以使用任何可連線到 Azure 且可以執行 Azure PowerShell 的線束/引擎。

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

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

存回映射處理站至 Git

映射處理站的所有 PowerShell、範本和設定都位於 公用 DevTest Labs GitHub 存放庫中 。 將程式碼放入新小組專案中,最快的方式是匯入存放庫。 匯入整個 DevTest Labs 存放庫中的提取專案(因此您會取得額外的檔及範例)。

  1. 請流覽您在上一個步驟中建立的 Azure DevOps 專案(URL 看起來像 HTTPs:// accountname.visualstudio.com/MyFirstProject > )。 <

  2. 選取 [ 匯入存放庫 ]。

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

  4. 選取匯入

    Screenshot that shows Import Git repo.

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

建立組建並聯機至 Azure

此時,您已將來源檔案儲存在 Azure DevOps 中的 Git 存放庫中。 現在,您必須設定管線以執行 Azure PowerShell。 有許多選項可以執行這些步驟。 在本文中,您會使用建置定義來簡單起見,但它適用于 DevOps Build、DevOps Release(單一或多個環境)、其他執行引擎,例如 Windows 工作排程器或任何其他可執行 Azure PowerShell 的控管。

注意

請記住,有些 PowerShell 檔案需要很長的時間才能建立許多自訂映射(10+) 時執行。 免費裝載的 DevOps 組建/發行代理程式逾時為 30 分鐘,因此一旦您開始建置許多映射,就無法使用免費的託管代理程式。 此逾時挑戰適用于您決定使用的任何功能,最好先確認您可以延長長時間執行 Azure PowerShell 腳本的一般逾時。 在 Azure DevOps 的情況下,您可以使用付費託管的代理程式,或使用您自己的組建代理程式。

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

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

Screenshot that shows Build variables.

連接到 Azure

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

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

Screenshot that shows Set up PowerShell step.

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

  1. 選取您剛才新增的工作
  2. 針對 [Azure 連線ion 類型 ],選擇 [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 設定映射處理站的第一個步驟已完成。 在本系列中的下一篇文章中,您會將這些 VM 一般化並儲存至自訂映射。 然後,您已將其散發到所有其他實驗室。 請參閱系列中的下一篇文章: 儲存自訂映射並散發至多個實驗室