DevTest Labs in Azure-pipelines gebruiken om pijplijnen te ontwikkelen en uit te brengen

Dit artikel bevat informatie over hoe DevTest Labs kan worden gebruikt in Azure-pipelines build- en release-pijplijnen.

Algemene stroom

De basisstroom bestaat uit een build-pijplijn die de volgende taken uitvoert:

  1. Bouw de toepassingscode.
  2. Maak de basisomgeving in DevTest Labs.
  3. Werk de omgeving bij met aangepaste informatie.
  4. De toepassing implementeren in de DevTest Labs-omgeving
  5. Test de code.

Zodra de build is voltooid, gebruikt de release-pijplijn de buildartefacten om fasering of productie te implementeren.

Een van de benodigde locaties is dat alle informatie die nodig is om het geteste ecosysteem opnieuw te maken, beschikbaar is in de buildartefacten, inclusief de configuratie van de Azure resources. Omdat het gebruik van Azure-resources kosten met zich meebrengt, willen bedrijven het gebruik van deze resources beheersen of bijhouden. In sommige situaties kunnen Azure Resource Manager sjablonen die worden gebruikt om de resources te maken en configureren, worden beheerd door een andere afdeling, zoals IT. En deze sjablonen kunnen worden opgeslagen in een andere opslagplaats. Het leidt tot een interessante situatie bij het maken en testen van een build. Zowel de code als de configuratie moeten worden opgenomen in de build-artefacten om het systeem in de productieomgeving opnieuw op te bouwen.

Met Behulp van DevTest Labs tijdens de build- en testfase kunt u Azure Resource Manager sjablonen en ondersteunende bestanden toevoegen aan de build-bronnen. Tijdens de releasefase implementeert u de exacte configuratie die u in de test hebt gebruikt voor productie. Met de taak Azure DevTest Labs-omgeving maken met de juiste configuratie worden de Resource Manager-sjablonen opgeslagen in de buildartefacten. In dit voorbeeld gebruikt u de code uit de zelfstudie: een .NET Core- en SQL Database-web-app maken in Azure App Service, om de web-app in Azure te implementeren en te testen.

Diagram waarin de algehele stroom wordt weergegeven.

Azure-resources instellen

U moet vooraf een aantal items maken:

  • Twee opslagplaatsen. De eerste met de code uit de zelfstudie en een Resource Manager-sjabloon met nog twee virtuele machines. De tweede bevat de basissjabloon Azure Resource Manager (bestaande configuratie).
  • Een resourcegroep voor de implementatie van de productiecode en configuratie.
  • Een lab met een verbinding naar de configuratierepository voor de buildpipeline. Check de Resource Manager-sjabloon in in de configuratieopslagplaats als azuredeploy.json, samen met metadata.json. Met deze naam kan DevTest Labs de sjabloon herkennen en implementeren.

De build-pijplijn maakt een DevTest Labs-omgeving en implementeert de code voor testen.

Een build-pipeline instellen

Maak in Azure-pipelines een build-pijplijn met behulp van de code uit de zelfstudie: Een .NET Core- en SQL Database-web-app maken in Azure App Service. Gebruik de ASP.NET Core-sjabloon, waarmee de benodigde taak wordt gevuld om de code te bouwen, te testen en te publiceren.

Schermopname van het selecteren van de ASP.NET-sjabloon.

Voeg nog drie taken toe om de omgeving te maken in DevTest Labs en te implementeren in de omgeving.

Schermopname van een pijplijn met drie taken.

Omgevingstaak maken

In de Azure DevTest Labs omgevingstaak maken gebruikt u de vervolgkeuzelijsten om de volgende waarden te selecteren:

  • Azure-abonnement
  • Naam van het lab
  • Naam van de opslagplaats
  • Naam van de sjabloon (waarin de map wordt weergegeven waarin de omgeving is opgeslagen).

U wordt aangeraden vervolgkeuzelijsten op de pagina te gebruiken in plaats van de gegevens handmatig in te voeren. Als u de gegevens handmatig invoert, voert u volledig gekwalificeerde Azure resource-id's in. De taak toont de gebruiksvriendelijke namen in plaats van resource-id’s.

De naam van de omgeving is de weergegeven naam in DevTest Labs. Het moet een unieke naam zijn voor elke build. Bijvoorbeeld: TestEnv$(Build.BuildId).

U kunt het parameterbestand of de parameters opgeven om informatie door te geven aan de Resource Manager-sjabloon.

Selecteer de optie Uitvoervariabelen maken op basis van de uitvoer van de omgevingssjabloon en voer een referentienaam in. Voer voor dit voorbeeld BaseEnv in als referentienaam. U gebruikt deze BaseEnv bij het configureren van de volgende taak.

Schermopname van de taak Create Azure DevTest Labs Environment.

Omgevingstaak invullen

De tweede taak (Azure DevTest Labs Populate Environment-taak) heeft als doel de bestaande DevTest Labs-omgeving bij te werken. De taak Omgeving maken voert BaseEnv.environmentResourceId uit die wordt gebruikt om de omgevingsnaam voor deze taak te configureren. De Resource Manager-sjabloon voor dit voorbeeld heeft twee parameters: adminUserName en adminPassword.

Schermopname van de taak Azure DevTest Labs Omgeving vullen.

App Service-taak implementeren

De derde taak is de Azure App Service Taak implementeren. Het app-type is ingesteld op Web App en de Naam van de App Service is ingesteld op $(WebSite).

Schermopname van de taak App Service Deploy.

Release-pijplijn instellen

U maakt een release-pijplijn met twee taken: Azure Implementatie: Resourcegroep maken of bijwerken en Azure App Service implementeren.

Geef voor de eerste taak de naam en locatie van de resourcegroep op. De sjabloonlocatie is een gekoppeld artefact. Als de Resource Manager sjabloon gekoppelde sjablonen bevat, moet u een aangepaste resourcegroepimplementatie implementeren. De sjabloon bevindt zich in het gepubliceerde drop-artefact. Sjabloonparameters voor de Resource Manager-sjabloon overschrijven. U kunt de overige instellingen met standaardwaarden behouden.

Geef voor de tweede taak Deploy Azure App Service het Azure-abonnement op, selecteer Web App voor het app-type en $(WebSite) voor de naam van de App Service. U kunt de overige instellingen met standaardwaarden behouden.

Proefrit

Nu beide pijplijnen zijn geconfigureerd, zet u handmatig een build in de wachtrij en ziet u hoe dit werkt. De volgende stap is het instellen van de juiste trigger voor de build en het verbinden van de build met de release-pijplijn.

Volgende stappen 

Zie de volgende artikelen: