從 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 存放庫中的提取專案(因此您會取得額外的檔及範例)。
請流覽您在上一個步驟中建立的 Azure DevOps 專案(URL 看起來像 HTTPs:// accountname.visualstudio.com/MyFirstProject > )。 <
選取 [ 匯入存放庫 ]。
輸入 DevTest Labs 存放庫的複製 URL :
https://github.com/Azure/azure-devtestlab
。選取匯入。
如果您決定只簽入所需的確切專案(映射處理站檔案),請遵循這裡的 步驟 來複製 Git 存放庫,並只推送位於 scripts/ImageFactory 目錄中的 檔案。
建立組建並聯機至 Azure
此時,您已將來源檔案儲存在 Azure DevOps 中的 Git 存放庫中。 現在,您必須設定管線以執行 Azure PowerShell。 有許多選項可以執行這些步驟。 在本文中,您會使用建置定義來簡單起見,但它適用于 DevOps Build、DevOps Release(單一或多個環境)、其他執行引擎,例如 Windows 工作排程器或任何其他可執行 Azure PowerShell 的控管。
注意
請記住,有些 PowerShell 檔案需要很長的時間才能建立許多自訂映射(10+) 時執行。 免費裝載的 DevOps 組建/發行代理程式逾時為 30 分鐘,因此一旦您開始建置許多映射,就無法使用免費的託管代理程式。 此逾時挑戰適用于您決定使用的任何功能,最好先確認您可以延長長時間執行 Azure PowerShell 腳本的一般逾時。 在 Azure DevOps 的情況下,您可以使用付費託管的代理程式,或使用您自己的組建代理程式。
若要開始,請選取 [在 DevOps Project 的首頁上設定組建 ]:
指定 組建的名稱 (例如:建置和傳遞映射至 DevTest Labs)。
選取空 的 組建定義,然後選取 [ 套用 ] 以建立您的組建。
在這個階段中,您可以選擇 [裝載 ] 供組建代理程式使用。
儲存 組建定義。
設定組建變數
若要簡化命令列參數,請將驅動映射處理站的索引鍵值封裝到一組組建變數。 選取 [變數] 索引 標籤,您會看到數個預設變數的清單。 以下是要輸入至 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 是暫時性的。 大小必須是 為實驗室 啟用的大小。 確認有足夠的 訂用帳戶核心配額 。 |
連接到 Azure
下一個步驟是設定服務主體。 服務主體是 Microsoft Entra 識別碼中的身分識別,可讓 DevOps 組建代理程式代表使用者在 Azure 中運作。 若要進行設定,請從新增第一個 Azure PowerShell 建置步驟開始。
- 選取 [ 新增工作 ]。
- 搜尋 Azure PowerShell 。
- 找到它之後,請選取 [ 新增 ] 以將工作新增至組建。 當您選取 [ 新增 ] 時,您會看到工作顯示為已新增的左側。
設定服務主體的最快方式是讓 Azure DevOps 為您執行此作業。
- 選取您剛才新增的工作 。
- 針對 [Azure 連線ion 類型 ],選擇 [Azure Resource Manager ]。
- 選取 [ 管理] 連結以設定服務主體。
如需詳細資訊,請參閱這篇部落格文章。 當您選取 [ 管理 ] 連結時,您會降落在 DevOps 的正確位置(部落格文章中的第二個螢幕擷取畫面),以設定與 Azure 的連線。 設定連線時,請務必選擇 [Azure Resource Manager 服務端點 ]。
完成建置工作
如果您選取建置工作,您會在右窗格中看到應該填入的所有詳細資料。
首先,將建置工作命名為: 建立虛擬機器 。
選擇 Azure Resource Manager 來選擇 您建立的服務主體
選擇服務端點 。
針對 [ 腳本路徑 ],選取 [ ...(省略號) 右側。
流覽至 MakeGoldenImageVMs.ps1 腳本。
腳本參數看起來應該像這樣:
-ConfigurationLocation $(System.DefaultWorkingDirectory)$(ConfigurationLocation) -DevTestLabName $(DevTestLabName) -vmSize $(VMSize) -machineUserName $(MachineUserName) -machinePassword (ConvertTo-SecureString -string '$(MachinePassword)' -AsPlainText -Force) -StandardTimeoutMinutes $(StandardTimeoutMinutes)
將組建排入佇列
讓我們透過佇列新的組建,確認您已正確設定所有專案。 當組建執行時,請切換至 Azure 入口網站 ,然後選取 映射處理站實驗室中的所有虛擬機器 ,以確認所有專案都正常運作。 您應該會在實驗室中看到三部虛擬機器已建立。
下一步
根據 Azure DevTest Labs 設定映射處理站的第一個步驟已完成。 在本系列中的下一篇文章中,您會將這些 VM 一般化並儲存至自訂映射。 然後,您已將其散發到所有其他實驗室。 請參閱系列中的下一篇文章: 儲存自訂映射並散發至多個實驗室 。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應