DevTest Labs integreren in Azure Pipelines

U kunt de extensie Azure DevTest Labs Tasks gebruiken om Azure DevTest Labs te integreren in CI/CD-pijplijnen (Continue integratie en levering) van Azure Pipelines. Met de extensie worden verschillende taken in Azure Pipelines geïnstalleerd, waaronder:

  • Een virtuele machine (VM) maken
  • Een aangepaste installatiekopie maken vanaf een virtuele machine
  • Een VM verwijderen

Deze taken maken het bijvoorbeeld eenvoudig om snel een golden image-VM te implementeren, een specifieke test uit te voeren en de VM vervolgens te verwijderen.

In dit artikel wordt beschreven hoe u Azure DevTest Labs Tasks gebruikt om een virtuele machine te maken en te implementeren, een aangepaste installatiekopieën te maken en vervolgens de VM te verwijderen, allemaal in één releasepijplijn. Normaal gesproken voert u deze taken afzonderlijk uit in uw eigen build-, test- en implementatiepijplijnen.

Aan de slag met Azure DevTest Labs

Bent u nog niet bekend met Azure? Maak een gratis Azure-account.

Gebruikt u Azure al? Aan de slag met uw eerste lab in DevTest Labs: binnen enkele minuten aan de slag met Azure DevTest Labs.

Vereisten

Een sjabloon maken om een lab-VM te bouwen

Maak eerst een ARM-sjabloon (Azure Resource Manager) waarmee op aanvraag een lab-VM wordt gemaakt.

  1. Selecteer in uw lab in de Azure Portal toevoegen in de bovenste menubalk.
  2. Selecteer op het scherm Een basis kiezen een Windows-basisinstallatiekopieën voor de virtuele machine.
  3. Selecteer in het scherm Labresource maken onder Artefacten de optie Artefacten toevoegen of verwijderen.
  4. Zoek in het scherm Artefacten toevoegen naar winrm en selecteer vervolgens de pijl naast WinRM configureren.
  5. Voer in het deelvenster Artefact toevoegen een FQDN (Fully Qualified Domain Name) in voor de VM, zoals contosolab00000000000000.westus3.cloudapp.azure.com. Selecteer OK en vervolgens weer OK.
  6. Selecteer het tabblad Geavanceerde instellingen en selecteer bij IP-adresde optie Openbaar.

    Notitie

    Als u het WinRM-artefact gebruikt met een gedeeld IP-adres, moet u een NAT-regel (Network Address Translation) toevoegen om een externe poort toe te wijzen aan de WinRM-poort. U hebt de NAT-regel niet nodig als u de VM met een openbaar IP-adres maakt. Voor dit scenario maakt u de virtuele machine met een openbaar IP-adres.

  7. Selecteer ARM-sjabloon weergeven.
  8. Kopieer de sjablooncode en sla deze op als een bestand met de naam CreateVMTemplate.json in uw lokale broncodebeheerbranch.
  9. Controleer de sjabloon in het broncodebeheersysteem van uw project.

Zie Een Resource Manager-sjabloon gebruiken voor meer informatie en details.

Een script maken om VM-eigenschappen op te halen

Maak vervolgens een script om de waarden te verzamelen die door taakstappen zoals Azure File Copy en PowerShell op doelmachines worden gebruikt om apps op VM's te implementeren. Normaal gesproken gebruikt u deze taken om uw eigen apps te implementeren op uw Azure-VM's. Voor de taken zijn waarden vereist, zoals de naam van de VM-resourcegroep, het IP-adres en de FQDN.

Notitie

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Sla het volgende script op met een naam als GetLabVMParams.ps1en controleer het in het broncodebeheersysteem van uw project.

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"

Een release-pijplijn in Azure Pipelines maken

Maak vervolgens de release-pijplijn in Azure Pipelines. De pijplijntaken gebruiken de waarden die u aan de VM hebt toegewezen toen u de ARM-sjabloon maakte.

  1. Selecteer in de linkernavigatiebalk van uw Azure DevOps Services-project de optie Pijplijnenreleases>.
  2. Selecteer Nieuwe pijplijn.
  3. Selecteer in het deelvenster Een sjabloon selecterende optie Lege taak.
  4. Sluit het deelvenster Fase .
  5. Selecteer op de pagina Nieuwe release-pijplijn het tabblad Variabelen .
  6. Selecteer Toevoegen en voer de volgende naam - en waardeparen in en selecteer Toevoegen nadat u elk paar hebt toegevoegd.
    • vmName: de naam van de VM die u hebt toegewezen in de ARM-sjabloon.
    • userName: de gebruikersnaam voor toegang tot de VM.
    • wachtwoord: wachtwoord voor de gebruikersnaam. Selecteer het vergrendelingspictogram om het wachtwoord te verbergen en te beveiligen.

Een artefact toevoegen

  1. Selecteer op de pagina nieuwe releasepijplijn op het tabblad Pijplijn de optie Een artefact toevoegen.
  2. Selecteer in het deelvenster Een artefact toevoegende optie Azure-opslagplaats.
  3. Selecteer uw DevOps-project in de lijst Project .
  4. Selecteer uw bronopslagplaats in de lijst Bron (opslagplaats ).
  5. Selecteer in de lijst Standaard vertakking de vertakking die u wilt uitchecken.
  6. Selecteer Toevoegen.

Een DevTest Labs-VM maken

In de volgende stap maakt u een golden image-VM die u kunt gebruiken voor toekomstige implementaties. In deze stap wordt de Azure DevTest Labs de taak VM maken gebruikt.

  1. Selecteer op de pagina nieuwe releasepijplijn op het tabblad Pijplijn de hyperlinktekst in fase 1.

  2. Selecteer in het linkerdeelvenster het plusteken + naast Agenttaak.

  3. Zoek en selecteer onder Taken toevoegen in het rechterdeelvenster Azure DevTest Labs VM maken en selecteer Toevoegen.

  4. Selecteer in het linkerdeelvenster de taak Azure DevTest Labs VM maken.

  5. Vul in het rechterdeelvenster het formulier als volgt in:

    • Azure RM-abonnement: selecteer uw serviceverbinding of abonnement in de vervolgkeuzelijst en selecteer Autoriseren indien nodig.

      Notitie

      Zie Azure Resource Manager service-eindpunt voor informatie over het maken van een beperktere machtigingsverbinding met uw Azure-abonnement.

    • Lab: selecteer de naam van uw DevTest Labs-lab.

    • Naam van virtuele machine: de variabele die u hebt opgegeven voor de naam van de virtuele machine: $vmName.

    • Sjabloon: Blader naar en selecteer het sjabloonbestand dat u hebt ingecheckt in uw projectopslagplaats.

    • Parametersbestand: als u een parameterbestand in uw opslagplaats hebt gecontroleerd, bladert u naar en selecteert u het.

    • Parameteroverschrijvingen: Voer in -newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'.

    • Vervolgkeuzelijst Uitvoervariabelen en voer onder Referentienaam de variabele in voor de gemaakte lab-VM-id. Voor het gemak voeren we vm in bij Referentienaam . labVmId is een kenmerk van deze variabele en wordt later aangeduid als $vm.labVmId. Als u een andere naam gebruikt, moet u deze dienovereenkomstig gebruiken in de volgende taken.

      De lab-VM-id heeft de volgende vorm: /subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}.

De details van de DevTest Labs-VM verzamelen

Vervolgens voert de pijplijn het script uit dat u hebt gemaakt om de details van de DEVTest Labs-VM te verzamelen.

  1. Selecteer op het tabblad Release-pijplijntaken het plusteken + naast Agenttaak.
  2. Zoek onder Taken toevoegen in het rechterdeelvenster naar Azure PowerShell en selecteer deze en selecteer Toevoegen.
  3. Selecteer in het linkerdeelvenster het Azure PowerShell script: FilePath-taak.
  4. Vul in het rechterdeelvenster het formulier als volgt in:
    • Azure-abonnement: selecteer uw serviceverbinding of abonnement.
    • Scripttype: selecteer Pad naar scriptbestand.
    • Scriptpad: Blader naar en selecteer het PowerShell-script dat u hebt ingecheckt in uw broncodeopslagplaats. U kunt ingebouwde eigenschappen gebruiken om het pad te vereenvoudigen, bijvoorbeeld: $(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1.
    • Scriptargumenten: voer de waarde in als -labVmId $(vm.labVmId).

Het script verzamelt de vereiste waarden en slaat deze op in omgevingsvariabelen binnen de release-pijplijn, zodat u ernaar kunt verwijzen in latere stappen.

Een VM-installatiekopieën maken op basis van de DevTest Labs-VM

De volgende taak maakt een installatiekopie van de zojuist geïmplementeerde VM in uw lab. U kunt de installatiekopieën gebruiken om op aanvraag kopieën van de VM te maken om ontwikkelaarstaken uit te voeren of tests uit te voeren.

  1. Selecteer op het tabblad Release-pijplijntaken het plusteken + naast Agenttaak.
  2. Selecteer onder Taken toevoegende optie Azure DevTest Labs Aangepaste installatiekopieën maken en selecteer Toevoegen.
  3. Selecteer in het linkerdeelvenster de Azure DevTest Labs Taak Aangepaste installatiekopieën maken.
  4. Vul in het rechterdeelvenster het formulier als volgt in:
    • Azure RM-abonnement: selecteer uw serviceverbinding of abonnement.
    • Lab: selecteer uw lab.
    • Naam van aangepaste installatiekopieën: voer een naam in voor de aangepaste installatiekopieën.
    • Beschrijving: voer een optionele beschrijving in om eenvoudig de juiste afbeelding te selecteren.
    • Bronlab-VM: de bron labVmId. Voer de waarde in als $(vm.labVmId)..
    • Uitvoervariabelen: u kunt indien nodig de naam van de standaardvariabele aangepaste afbeeldings-id bewerken.

Uw app implementeren op de DevTest Labs-VM (optioneel)

U kunt taken toevoegen om uw app te implementeren op de nieuwe DevTest Labs-VM. Als u alleen wilt experimenteren met het maken van een DevTest Labs-VM en een aangepaste installatiekopieën, zonder een app te implementeren, kunt u deze stap overslaan.

De taken die u meestal gebruikt om apps te implementeren, zijn Azure File Copy en PowerShell op doelmachines. U vindt de VM-informatie die u nodig hebt voor de taakparameters in drie configuratievariabelen met de naam labVmRgName, labVMIpAddress en labVMFqdn in de release-pijplijn.

De VM verwijderen

De laatste taak bestaat uit het verwijderen van de VM die u in uw lab hebt geïmplementeerd. Normaal gesproken verwijdert u de VM nadat u de ontwikkelaarstaken hebt uitgevoerd of de tests hebt uitgevoerd die u nodig hebt op de geïmplementeerde VM.

  1. Selecteer op het tabblad Release-pijplijntaken het plusteken + naast Agenttaak.
  2. Selecteer onder Taken toevoegende optie Azure DevTest Labs VM verwijderen en selecteer Toevoegen.
  3. Configureer de taak als volgt:
    • Azure RM-abonnement: selecteer uw serviceverbinding of abonnement.
    • Lab: selecteer uw lab.
    • Virtuele machine: voer $ (vm.labVmId) in als waarde.
    • Uitvoervariabelen: als u onder Verwijzingsnaam de standaardnaam van de variabele labVmId hebt gewijzigd, voert u deze hier in. De standaardwaarde is $(labVmId).

De release-pijplijn opslaan

De nieuwe release-pijplijn opslaan:

  1. Selecteer Nieuwe release-pijplijn bovenaan de releasepijplijnpagina en voer een nieuwe naam in voor de pijplijn.
  2. Selecteer Opslaan in de rechterbovenhoek.

Een release maken en uitvoeren

Een release maken en uitvoeren met behulp van de nieuwe pijplijn:

  1. Selecteer op de pagina Release-pijplijn de optie Release maken in de rechterbovenhoek.
  2. Selecteer onder Artefacten de meest recente build en selecteer vervolgens Maken.

In elke releasefase kunt u de weergave van uw lab vernieuwen in de Azure Portal om het maken van de VM, het maken van installatiekopieën en het verwijderen van de VM te bekijken.

U kunt de aangepaste installatiekopieën gebruiken om VM's te maken wanneer u deze nodig hebt.

Volgende stappen