Udostępnij za pośrednictwem


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

Za pomocą rozszerzenia Azure DevTest Labs Tasks można zintegrować usługę Azure DevTest Labs z potokami ciągłej integracji i ciągłego dostarczania (CI/CD). 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 wdrożenie złotej maszyny wirtualnej obrazu , uruchomienie określonego testu, a następnie usunięcie maszyny wirtualnej.

W tym artykule pokazano, jak używać zadań usługi Azure DevTest Labs do tworzenia i wdrażania maszyny wirtualnej, tworzenia obrazu niestandardowego, a następnie usuwania maszyny wirtualnej 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

Używasz platformy Azure po raz pierwszy? Tworzenie bezpłatnego konta platformy Azure.

Już masz konto na platformie Azure? Utwórz pierwsze laboratorium i rozpocznij pracę z usługą Azure DevTest Labs w ciągu kilku minut.

Wymagania wstępne

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

  • Zarejestruj się lub zaloguj się do organizacji usługi 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 pozycji Zadania usługi Azure DevTest Labs.
    2. Wybierz pozycję Pobierz bezpłatnie.
    3. Wybierz organizację usługi 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 witrynie 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 ciąg 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 pozycję OK, a następnie ponownie wybierz opcję 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. Nie potrzebujesz reguły translatora adresów sieciowych, jeśli tworzysz maszynę wirtualną z publicznym adresem IP. 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.

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

Następnie utwórz skrypt, aby zebrać wartości, które będą 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 należy używać 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

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. 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 z nazwą taką jak GetLabVMParams.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 usługi 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, aby 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 stronie nowy potok 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 Dodaj.

Tworzenie maszyny wirtualnej usługi DevTest Labs

W następnym kroku zostanie utworzona złota maszyna wirtualna obrazu do użycia na potrzeby przyszłych wdrożeń. W tym kroku jest używane zadanie Tworzenie maszyny wirtualnej w usłudze Azure DevTest Labs.

  1. Na stronie nowego potoku wydania na karcie Potok wybierz hiperlinkowany tekst w etapie 1.

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

  3. W obszarze Dodawanie zadań 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 maszynę wirtualną usługi Azure DevTest Labs.

  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 w razie potrzeby.

      Uwaga

      Aby uzyskać informacje na temat tworzenia 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ą identyfikatora utworzonej maszyny wirtualnej laboratorium. Wprowadźmy maszynę wirtualną w polu Nazwa odwołania 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 usługi DevTest Labs

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

  1. Na karcie Zadania potoku wydania wybierz znak plus obok pozycji + Zadanie agenta.
  2. W obszarze Dodawanie zadań 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 programu Azure PowerShell: FilePath .
  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 odwoływać się do nich 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 Dodawanie zadań wybierz pozycję Azure DevTest Labs Utwórz obraz niestandardowy, a następnie wybierz pozycję Dodaj.
  3. W okienku po lewej stronie wybierz zadanie Tworzenie obrazu niestandardowego w usłudze Azure DevTest Labs.
  4. W okienku po prawej stronie wypełnij formularz w następujący sposób:
    • Subskrypcja usługi Azure RM: wybierz połączenie usługi 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 niestandardowej zmiennej identyfikatora obrazu.

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

Możesz dodać zadania umożliwiające wdrożenie 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 należy usunąć maszynę wirtualną po wykonaniu zadań dewelopera 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 usługi 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 witrynie Azure Portal, aby wyświetlić tworzenie maszyny wirtualnej, tworzenie obrazów i usuwanie maszyn wirtualnych.

Możesz użyć obrazu niestandardowego do tworzenia maszyn wirtualnych zawsze, gdy są potrzebne.

Następne kroki

  • Zapoznaj się z dodatkowymi szablonami usługi ARM dla automatyzacji usługi DevTest Labs z publicznego repozytorium GitHub usługi DevTest Labs.
  • Jeśli to konieczne, zobacz Rozwiązywanie problemów z usługą Azure Pipelines.