Integrowanie usługi DevTest Labs z usługą Azure Pipelines

Za pomocą rozszerzenia Azure DevTest Labs Tasks można zintegrować Azure DevTest Labs z potokami ciągłej integracji i dostarczania (CI/CD) usługi Azure Pipelines. Rozszerzenie instaluje kilka zadań w usłudze Azure Pipelines, w tym:

  • Tworzenie maszyny wirtualnej
  • Tworzenie obrazu niestandardowego z poziomu maszyny wirtualnej
  • Usuwanie maszyny wirtualnej

Te zadania ułatwiają na przykład szybkie wdrażanie złotej maszyny wirtualnej obrazu, uruchamianie określonego testu, a następnie usuwanie maszyny wirtualnej.

W tym artykule pokazano, jak za pomocą Azure DevTest Labs Tasks utworzyć i wdrożyć maszynę wirtualną, utworzyć obraz niestandardowy, a następnie usunąć maszynę wirtualną w jednym potoku wydania. Zwykle wykonujesz te zadania oddzielnie we własnych potokach kompilacji, testowania i wdrażania.

Rozpoczynanie pracy z usługą Azure DevTest Labs

Dopiero zaczynasz korzystać z platformy Azure? Utwórz bezpłatne konto platformy Azure.

Już masz konto na platformie Azure? Rozpocznij pracę z pierwszym laboratorium w usłudze DevTest Labs: rozpoczynanie pracy z Azure DevTest Labs w ciągu kilku minut.

Wymagania wstępne

  • W Azure Portal utwórz laboratorium DevTest Labs lub użyj istniejącego laboratorium.

  • Zarejestruj się lub zaloguj się do organizacji Azure DevOps Services i utwórz projekt lub użyj istniejącego projektu.

  • Zainstaluj rozszerzenie Azure DevTest Labs Tasks z witryny Visual Studio Marketplace:

    1. Przejdź do Azure DevTest Labs Tasks.
    2. Wybierz pozycję Pobierz bezpłatnie.
    3. Wybierz organizację Azure DevOps Services z listy rozwijanej, a następnie wybierz pozycję Zainstaluj.

Tworzenie szablonu w celu utworzenia maszyny wirtualnej laboratorium

Najpierw skonstruuj szablon usługi Azure Resource Manager (ARM), który tworzy maszynę wirtualną laboratorium na żądanie.

  1. W laboratorium w Azure Portal wybierz pozycję Dodaj na górnym pasku menu.
  2. Na ekranie Wybieranie podstawy wybierz obraz podstawowy systemu Windows dla maszyny wirtualnej.
  3. Na ekranie Tworzenie zasobu laboratorium w obszarze Artefakty wybierz pozycję Dodaj lub Usuń artefakty.
  4. Na ekranie Dodawanie artefaktów wyszukaj pozycję winrm, a następnie wybierz strzałkę obok pozycji Konfiguruj usługę WinRM.
  5. W okienku Dodawanie artefaktu wprowadź w pełni kwalifikowaną nazwę domeny (FQDN) dla maszyny wirtualnej, na przykład contosolab00000000000000.westus3.cloudapp.azure.com. Wybierz przycisk OK, a następnie ponownie wybierz przycisk OK.
  6. Wybierz kartę Ustawienia zaawansowane , a w polu Adres IP wybierz pozycję Publiczny.

    Uwaga

    Jeśli używasz artefaktu usługi WinRM z udostępnionym adresem IP, musisz dodać regułę translatora adresów sieciowych (NAT), aby zamapować port zewnętrzny na port usługi WinRM. Jeśli utworzysz maszynę wirtualną z publicznym adresem IP, nie potrzebujesz reguły translatora adresów sieciowych. W tym przewodniku utwórz maszynę wirtualną z publicznym adresem IP.

  7. Wybierz pozycję Wyświetl szablon usługi ARM.
  8. Skopiuj kod szablonu i zapisz go jako plik o nazwie CreateVMTemplate.json w lokalnej gałęzi kontroli źródła.
  9. Zaewidencjonuj szablon w systemie kontroli źródła projektu.

Aby uzyskać więcej informacji i szczegółów, zobacz Use a Resource Manager template (Używanie szablonu Resource Manager).

Tworzenie skryptu w celu pobrania właściwości maszyny wirtualnej

Następnie utwórz skrypt, aby zebrać wartości wykonywane przez zadania, takie jak kopiowanie plików platformy Azure i program PowerShell na maszynach docelowych , używane do wdrażania aplikacji na maszynach wirtualnych. Zwykle używasz tych zadań do wdrażania własnych aplikacji na maszynach wirtualnych platformy Azure. Zadania wymagają wartości, takich jak nazwa grupy zasobów maszyny wirtualnej, adres IP i nazwa FQDN.

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Zapisz następujący skrypt o nazwie , takiej jakGetLabVMParams.ps1, i zaewidencjonuj go w systemie kontroli źródła projektu.

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"

Tworzenie potoku wydania w usłudze Azure Pipelines

Następnie utwórz potok wydania w usłudze Azure Pipelines. Zadania potoku używają wartości przypisanych do maszyny wirtualnej podczas tworzenia szablonu usługi ARM.

  1. Na stronie projektu Azure DevOps Services wybierz pozycję Potoki>wydania w obszarze nawigacji po lewej stronie.
  2. Wybierz pozycję Nowy potok.
  3. W okienku Wybierz szablon wybierz pozycję Puste zadanie.
  4. Zamknij okienko Etap .
  5. Na stronie Potok nowej wersji wybierz kartę Zmienne .
  6. Wybierz pozycję Dodaj, a następnie wprowadź następujące pary Nazwa i Wartość , wybierając pozycję Dodaj po dodaniu każdej z nich.
    • vmName: nazwa maszyny wirtualnej przypisana w szablonie usługi ARM.
    • userName: nazwa użytkownika, która ma uzyskać dostęp do maszyny wirtualnej.
    • hasło: hasło dla nazwy użytkownika. Wybierz ikonę blokady, aby ukryć i zabezpieczyć hasło.

Dodawanie artefaktu

  1. Na nowej stronie potoku wydania na karcie Potok wybierz pozycję Dodaj artefakt.
  2. W okienku Dodawanie artefaktu wybierz pozycję Repozytorium Platformy Azure.
  3. Na liście Project (Projekt) wybierz projekt DevOps.
  4. Na liście Źródło (repozytorium) wybierz repozytorium źródłowe.
  5. Na liście Gałąź domyślna wybierz gałąź do wyewidencjonowania.
  6. Wybierz pozycję Dodaj.

Tworzenie maszyny wirtualnej usługi DevTest Labs

Następny krok tworzy złotą maszynę wirtualną obrazu do użycia na potrzeby przyszłych wdrożeń. W tym kroku użyto zadania Azure DevTest Labs Tworzenie maszyny wirtualnej.

  1. Na nowej stronie potoku wydania na karcie Potok wybierz tekst hiperłącza w etapie 1.

  2. W okienku po lewej stronie wybierz znak + plus obok pozycji Zadanie agenta.

  3. W obszarze Dodaj zadania w okienku po prawej stronie wyszukaj i wybierz pozycję Azure DevTest Labs Utwórz maszynę wirtualną, a następnie wybierz pozycję Dodaj.

  4. W okienku po lewej stronie wybierz zadanie Utwórz Azure DevTest Labs maszyny wirtualnej.

  5. W okienku po prawej stronie wypełnij formularz w następujący sposób:

    • Subskrypcja usługi Azure RM: wybierz połączenie z usługą lub subskrypcję z listy rozwijanej, a następnie wybierz pozycję Autoryzuj , jeśli to konieczne.

      Uwaga

      Aby uzyskać informacje o tworzeniu bardziej ograniczonego połączenia uprawnień z subskrypcją platformy Azure, zobacz Punkt końcowy usługi Azure Resource Manager.

    • Laboratorium: wybierz nazwę laboratorium DevTest Labs.

    • Nazwa maszyny wirtualnej: zmienna określona dla nazwy maszyny wirtualnej: $vmName.

    • Szablon: przejdź do i wybierz plik szablonu zaewidencjonowany w repozytorium projektu.

    • Plik parametrów: jeśli plik parametrów został sprawdzony w repozytorium, przejdź do pliku i wybierz go.

    • Przesłonięcia parametrów: wprowadź .-newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'

    • Z listy rozwijanej Zmienne wyjściowe i w obszarze Nazwa odwołania wprowadź zmienną dla utworzonego identyfikatora maszyny wirtualnej laboratorium. Wprowadźmy maszynę wirtualną w polu Nazwa referencyjna dla uproszczenia. labVmId będzie atrybutem tej zmiennej i będzie określany później jako $vm.labVmId. Jeśli używasz innej nazwy, pamiętaj, aby używać jej odpowiednio w kolejnych zadaniach.

      Identyfikator maszyny wirtualnej laboratorium będzie mieć następującą postać: /subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}.

Zbieranie szczegółów maszyny wirtualnej DevTest Labs

Następnie potok uruchamia utworzony skrypt, aby zebrać szczegóły maszyny wirtualnej DevTest Labs.

  1. Na karcie Zadania potoku wydania wybierz znak + plus obok pozycji Zadanie agenta.
  2. W obszarze Dodaj zadania w okienku po prawej stronie wyszukaj i wybierz pozycję Azure PowerShell, a następnie wybierz pozycję Dodaj.
  3. W okienku po lewej stronie wybierz skrypt Azure PowerShell: FilePath task.
  4. W okienku po prawej stronie wypełnij formularz w następujący sposób:
    • Subskrypcja platformy Azure: wybierz połączenie usługi lub subskrypcję.
    • Typ skryptu: wybierz pozycję Ścieżka pliku skryptu.
    • Ścieżka skryptu: przejdź do i wybierz skrypt programu PowerShell zaewidencjonowany w repozytorium kodu źródłowego. Możesz użyć wbudowanych właściwości, aby uprościć ścieżkę, na przykład: $(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1.
    • Argumenty skryptu: wprowadź wartość -labVmId $(vm.labVmId).

Skrypt zbiera wymagane wartości i przechowuje je w zmiennych środowiskowych w potoku wydania, dzięki czemu można je odwołać w kolejnych krokach.

Tworzenie obrazu maszyny wirtualnej na podstawie maszyny wirtualnej usługi DevTest Labs

Następne zadanie tworzy obraz nowo wdrożonej maszyny wirtualnej w laboratorium. Obraz umożliwia tworzenie kopii maszyny wirtualnej na żądanie w celu wykonywania zadań deweloperskich lub uruchamiania testów.

  1. Na karcie Zadania potoku wydania wybierz znak + plus obok pozycji Zadanie agenta.
  2. W obszarze Dodaj zadania wybierz pozycję Azure DevTest Labs Utwórz obraz niestandardowy, a następnie wybierz pozycję Dodaj.
  3. W okienku po lewej stronie wybierz zadanie Azure DevTest Labs Utwórz obraz niestandardowy.
  4. W okienku po prawej stronie wypełnij formularz w następujący sposób:
    • Subskrypcja usługi Azure RM: wybierz połączenie z usługą lub subskrypcję.
    • Laboratorium: wybierz swoje laboratorium.
    • Nazwa obrazu niestandardowego: wprowadź nazwę obrazu niestandardowego.
    • Opis: wprowadź opcjonalny opis, aby ułatwić wybranie poprawnego obrazu.
    • Źródłowa maszyna wirtualna laboratorium: źródłowy identyfikator labVmId. Wprowadź wartość $(vm.labVmId).
    • Zmienne wyjściowe: w razie potrzeby można edytować nazwę domyślnej zmiennej niestandardowego identyfikatora obrazu.

Wdrażanie aplikacji na maszynie wirtualnej usługi DevTest Labs (opcjonalnie)

Możesz dodać zadania wdrażania aplikacji na nowej maszynie wirtualnej usługi DevTest Labs. Jeśli chcesz eksperymentować tylko z tworzeniem maszyny wirtualnej usługi DevTest Labs i obrazem niestandardowym bez wdrażania aplikacji, możesz pominąć ten krok.

Zadania, których zwykle używasz do wdrażania aplikacji, to usługa Azure File Copy i program PowerShell na maszynach docelowych. Informacje o maszynie wirtualnej potrzebne dla parametrów zadania można znaleźć w trzech zmiennych konfiguracji o nazwach labVmRgName, labVMIpAddress i labVMFqdn w potoku wydania.

Usuwanie maszyny wirtualnej

Ostatnim zadaniem jest usunięcie maszyny wirtualnej wdrożonej w laboratorium. Zwykle usuwasz maszynę wirtualną po wykonaniu zadań deweloperskich lub uruchomieniu testów potrzebnych na wdrożonej maszynie wirtualnej.

  1. Na karcie Zadania potoku wydania wybierz znak + plus obok pozycji Zadanie agenta.
  2. W obszarze Dodawanie zadań wybierz pozycję Azure DevTest Labs Usuń maszynę wirtualną, a następnie wybierz pozycję Dodaj.
  3. Skonfiguruj zadanie w następujący sposób:
    • Subskrypcja usługi Azure RM: wybierz połączenie z usługą lub subskrypcję.
    • Laboratorium: wybierz swoje laboratorium.
    • Maszyna wirtualna: wprowadź wartość $(vm.labVmId).
    • Zmienne wyjściowe: w obszarze Nazwa odwołania, jeśli zmieniono domyślną nazwę zmiennej labVmId , wprowadź ją tutaj. Wartość domyślna to $(labVmId).

Zapisywanie potoku wydania

Aby zapisać nowy potok wydania:

  1. Wybierz pozycję Nowy potok wydania w górnej części strony potoku wydania i wprowadź nową nazwę potoku.
  2. Wybierz pozycję Zapisz w prawym górnym rogu.

Tworzenie i uruchamianie wydania

Aby utworzyć i uruchomić wydanie przy użyciu nowego potoku:

  1. Na stronie potoku wydania wybierz pozycję Utwórz wydanie w prawym górnym rogu.
  2. W obszarze Artefakty wybierz najnowszą kompilację, a następnie wybierz pozycję Utwórz.

Na każdym etapie wydania możesz odświeżyć widok laboratorium w Azure Portal, aby zobaczyć tworzenie maszyny wirtualnej, tworzenie obrazów i usuwanie maszyny wirtualnej.

Możesz użyć obrazu niestandardowego do tworzenia maszyn wirtualnych, gdy ich potrzebujesz.

Następne kroki