共用方式為


將 DevTest Labs 整合到 Azure Pipelines

您可以使用 Azure DevTest Labs Tasks 延伸模組,將 Azure DevTest Labs 整合到 Azure Pipelines 持續整合和傳遞 (CI/CD) 管線。 此延伸模組會將數個工作安裝至 Azure Pipelines,包括:

  • 建立虛擬機器 (VM)
  • 從 VM 建立自訂映像
  • 刪除 VM

這些工作可讓您輕鬆地快速部署「最佳映像」VM、執行特定測試,然後刪除 VM。

本文說明如何使用 Azure DevTest Labs Tasks 在一個發行管線中建立並部署 VM、建立自訂映像,然後刪除 VM。 您通常會在自己的組建、測試和部署管線中個別執行這些工作。

開始使用 Azure DevTest Labs

剛接觸 Azure 嗎? 建立免費的 Azure 帳戶

已使用 Azure 嗎? 建立您的第一個實驗室,並在 幾分鐘內開始使用 Azure DevTest Labs。

必要條件

建立範本以建置實驗室 VM

首先,建構 Azure Resource Manager (ARM) 範本,以視需要建立實驗室 VM。

  1. 在實驗室的 Azure 入口網站中,選取頂端功能表列中的 [新增]
  2. 在 [選擇基底] 畫面中,為 VM 選取 Windows 基底映像。
  3. 在 [建立實驗室資源] 畫面的 [成品] 底下,選取 [新增或移除成品]
  4. 在 [新增成品] 畫面上,搜尋 winrm,然後選取 [設定 WinRM] 旁的箭號。
  5. 在 [新增成品] 窗格中,輸入 VM (FQDN) 的完整功能變數名稱,例如 contosolab00000000000000.westus3.cloudapp.azure.com。 選取確定,然後再選取確定
  6. 選取 [進階設定] 索引標籤,然後針對 [IP 位址] 選取 [公用]

    注意

    在透過共用 IP 位址使用 WinRM 成品時,您必須新增將外部連接埠對應至 WinRM 連接埠的網路位址轉譯 (NAT) 規則。 如果您使用 IP 位址建立 VM,則不需要 NAT 規則。 在本逐步解說中,請使用公用 IP 位址建立 VM。

  7. 選取 [檢視 ARM 範本]
  8. 複製範本程式碼並儲存在本機原始檔控制分支中,將檔案命名為 CreateVMTemplate.json
  9. 將範本簽入您專案的原始程式碼控制系統。

如需詳細資訊和詳細資料,請參閱使用 Resource Manager 範本

建立指令碼以取得 VM 屬性

接下來,建立指令碼以收集 Azure 檔案複製目的機器上的 PowerShell 等工作步驟的值,用以將應用程式部署至 VM。 您通常會使用這些工作將自己的應用程式部署至 Azure VM。 這些工作需要 VM 資源群組名稱、IP 位址和 FQDN 之類的值。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

使用 GetLabVMParams.ps1 之類的名稱儲存下列指令碼,並將其簽入專案的原始程式碼控制系統。

Param( [string] $labVmId)

$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId

# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName

# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name

# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress

# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn

# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"

# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"

# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"

在 Azure Pipelines 中建立發行管線

接著,若要在 Azure Pipelines 中建立發行管線。 管線工作會使用您在建立 ARM 範本時指派給 VM 的值。

  1. 從您的 Azure DevOps Services 專案頁面上,從左側導覽中選取 [管線]>[發行]
  2. 選取 [新增管線]
  3. 在 [選取範本] 窗格中,選取 [空白作業]
  4. 關閉 [階段] 窗格。
  5. 在 [新增發行管線] 頁面上,選取 [變數] 索引標籤。
  6. 選取 [新增],然後輸入下列名稱值組,在新增每一組之後選取 [新增]
    • vmName:您在 ARM 範本中指派的 VM 名稱。
    • userName:存取 VM 的使用者名稱。
    • password:該使用者名稱的密碼。 選取鎖頭圖示可隱藏及保護密碼。

新增構件

  1. 在新的發行管線頁面,選取 [管線] 索引標籤上的 [新增成品]
  2. 在 [新增成品] 窗格中,選取 [Azure 存放庫]
  3. 在 [專案] 清單中,選取 DevOps 專案。
  4. 在 [來源 (存放庫)] 清單中,選取來源存放庫。
  5. 在 [預設分支] 清單中,選取要簽出的分支。
  6. 選取 [新增]。

建立 DevTest Labs VM

下一個步驟會建立用於未來部署的最佳映像 VM。 此步驟會使用 Azure DevTest Labs 建立 VM 工作。

  1. 在新的發行管線頁面上,在 [管線] 索引標籤上,選取 [階段 1] 中的超連結文字。

  2. 在左窗格中,選取+代理程式作業旁邊的加號

  3. 在右窗格中的 [新增工作] 底下,搜尋並選取 [Azure DevTest Labs Create VM],然後選取 [新增]

  4. 在左窗格中,選取 [Create Azure DevTest Labs VM] 工作。

  5. 在右窗格中,填寫表單,如下所示:

    • Azure RM 訂用帳戶:從下拉式清單中選取您的服務連線或訂用帳戶,然後視需要選取 [授權]

      注意

      如需建立與 Azure 訂用帳戶有更多授權限制的連線,請參閱 Azure Resource Manager 服務端點

    • 實驗室:選取您的 DevTest Labs 實驗室名稱。

    • 虛擬機器名稱:您為虛擬機器名稱指定的變數:$vmName

    • 範本:瀏覽並選取您簽入至專案存放庫的範本檔案。

    • 參數檔案:如果您將參數檔案簽入存放庫,請瀏覽至其中並加以選取。

    • 參數覆寫:輸入 -newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'

    • 下拉 [輸出變數] 清單,然後在 [參考名稱] 下輸入所建立實驗室 VM 識別碼的變數。 為了簡化,讓我們輸入 vm 作為參考名稱labVmId 將是此變數的屬性,稍後將稱為 $vm.labVmId。 如果您使用任何其他名稱,請記得在後續工作中據以使用該名稱。

      實驗室 VM 識別碼的格式如下:/subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}

收集 DevTest Labs VM 的詳細資料

接著,管線會執行您建立的指令碼,以收集 DevTest Labs VM 的詳細資料。

  1. 在發行管線 [工作] 索引標籤上,選取 [代理程式作業] 旁的加號 +
  2. 在右窗格中的 [新增工作] 底下,搜尋並選取 [Azure PowerShell],然後選取 [新增]
  3. 在左窗格中,選取 [Azure PowerShell 指令碼:FilePath] 工作。
  4. 在右窗格中,填寫表單,如下所示:
    • Azure 訂用帳戶:選取您的服務連線或訂用帳戶。
    • 指令碼類型:選取 [指令檔路徑]
    • 指令碼路徑:瀏覽並選取您簽入原始程式碼存放庫的 PowerShell 指令碼。 您可以使用內建屬性來簡化路徑,例如:$(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1
    • 指令碼引數:將值輸入為 -labVmId $(vm.labVmId)

此指令碼會收集所需的值,並將其儲存在發行管線內的環境變數中,以便您在後續的步驟中加以參考。

從 DevTest Labs VM 建立 VM 映像

下一個工作會在實驗室中建立新部署 VM 的映像。 您可以隨需使用映像建立 VM 的副本,以進行開發人員工作或執行測試。

  1. 在發行管線 [工作] 索引標籤上,選取 [代理程式作業] 旁的加號 +
  2. 在 [新增工作] 底下,選取 [Azure DevTest Labs 建立自訂映像],然後選取 [新增]。
  3. 在左窗格中,選取 [Azure DevTest Labs 建立自訂映像]
  4. 在右窗格中,填寫表單,如下所示:
    • Azure RM 訂用帳戶:選取您的服務連線或訂用帳戶。
    • 實驗室:選取您的實驗室。
    • 自訂映像名稱:輸入自訂映像的名稱。
    • 說明:選擇性輸入有助於您後續選取正確映像的說明。
    • 來源實驗室 VM:來源 labVmId。 將值輸入為 $(vm.labVmId)
    • 輸出變數:如有需要,您可以編輯預設自訂影像識別碼變數的名稱。

將您的應用程式部署到 DevTest Labs VM (選用)

您可以新增工作,以將應用程式部署至新的 DevTest Labs VM。 如果您只想要試驗性地建立 DevTest Labs VM 和自訂映像,不需部署應用程式,則可以略過此步驟。

您通常會使用 Azure 檔案複製目標電腦上的 PowerShell 工作來部署應用程式。 若要尋找工作的參數所需的 VM 相關資訊,請查看發行管線內名為 labVmRgNamelabVMIpAddresslabVMFqdn 的三個設定變數。

刪除 VM

最後一項工作是刪除您實驗室中部署的 VM。 在已部署的 VM 上執行您所需的開發人員工作或測試之後,通常會將 VM 刪除。

  1. 在發行管線 [工作] 索引標籤上,選取 [代理程式作業] 旁的加號 +
  2. 在 [新增工作] 底下,選取 [Azure DevTest Labs 刪除 VM],然後選取 [新增]
  3. 請依照下列方式設定工作:
    • Azure RM 訂用帳戶:選取您的服務連線或訂用帳戶。
    • 實驗室:選取您的實驗室。
    • 虛擬機器:輸入值作為 $(vm.labVmId)
    • 輸出變數:如果您變更了 labVmId 變數的預設名稱,請在 [參考名稱] 底下輸入。 預設值為 $(labVmId)

儲存發行管線

若要儲存新的發行管線:

  1. 選取發行管線頁面頂端的 [新增發行管線],然後輸入管線的新名稱。
  2. 選取右上角的 [儲存]

建立並執行發行

若要使用新的管線建立和執行發行:

  1. 在發行管線頁面上,選取右上角的 [建立發行]
  2. 在 [成品] 底下,選取最新的組建,然後選取 [建立]

在每個發行階段,您可以在 Azure 入口網站中重新整理實驗室的檢視,以查看 VM 建立、映像建立和 VM 刪除。

每當需要 VM 時,您可以使用自訂映像來建立 VM。

下一步