Inzicht in Azure Pipelines

Voltooid

U kunt de stappen in uw implementatieproces automatiseren met behulp van een pijplijn. Telkens wanneer u een wijziging aanbrengt in uw code en de wijziging doorvoert in uw Git-opslagplaats, voert de pijplijn uw vooraf gedefinieerde proces uit. Een pijplijn kan controleren of uw Bicep-code voldoet aan uw kwaliteitsnormen en vervolgens worden de stappen voor het implementeren van uw resources in Azure geautomatiseerd. Het proces wordt gedefinieerd in een pijplijndefinitie die u maakt.

Azure Pipelines is een functie van de Azure DevOps-service. Azure DevOps bevat ook Azure-opslagplaatsen, die als host fungeert voor de Git-opslagplaatsen die u gebruikt om uw code op te slaan en te delen met uw medewerkers. Wanneer u uw Bicep-code opslaat in Git, heeft Azure Pipelines toegang tot uw code om uw implementatieprocessen te automatiseren. In deze les leert u meer over Azure Pipelines.

Wat is een pijplijn?

Een pijplijn is het herhaalbare proces dat u gebruikt om uw code te testen en te implementeren die is gedefinieerd in een configuratiebestand. Een pijplijn bevat alle stappen die u wilt uitvoeren en in welke volgorde.

Wanneer u met Azure Pipelines werkt, definieert u uw pijplijn in een YAML-bestand. Een YAML-bestand is een gestructureerd tekstbestand, vergelijkbaar met hoe Bicep een gestructureerd tekstbestand is. U kunt YAML-bestanden maken en bewerken met behulp van een teksteditor. In deze module gaat u Visual Studio Code gebruiken. Visual Studio Code biedt een extensie waarmee u azure DevOps YAML-pijplijnbestanden gemakkelijker kunt bewerken. De Azure DevOps-webinterface biedt ook enkele hulpprogramma's die u kunt gebruiken om uw YAML-pijplijnbestanden weer te geven en te bewerken.

Notitie

Azure Pipelines bevat klassieke pijplijnen, een eerdere versie van de functie pijplijnen. OP YAML gebaseerde pijplijnen hebben klassieke pijplijnen vervangen. In deze module bespreken we alleen YAML-pijplijnen. U wordt aangeraden YAML-pijplijnen te gebruiken.

Omdat een YAML-pijplijnbestand een codebestand is, wordt het bestand opgeslagen met uw Bicep-code in uw Git-opslagplaats. U gebruikt Git-functies om samen te werken aan uw pijplijndefinitie. U kunt verschillende versies van uw pijplijnbestand beheren met behulp van doorvoeringen en vertakkingen. In een toekomstige module leert u ook meer over andere geavanceerde functies van pijplijnen, zoals sjablonen. Met sjablonen kunt u pijplijndefinities eenvoudig hergebruiken.

Agents en pools

Tot nu toe hebt u uw Bicep-bestanden vanaf uw lokale computer geïmplementeerd. Nadat u een Bicep-sjabloon hebt geschreven, implementeert u deze in Azure met behulp van de Azure CLI of Azure PowerShell. Deze hulpprogramma's gebruiken de resources van uw computer om de sjabloon naar Azure te verzenden. Ze gebruiken uw persoonlijke identiteit om u bij Azure te verifiëren en om te controleren of u over de machtigingen beschikt om de resources te implementeren.

Een pijplijn heeft ook toegang nodig tot een computer, zodat deze de implementatiestappen kan uitvoeren. Azure Pipelines maakt gebruik van een machine die een agent wordt genoemd. Een agent is een computer die is geconfigureerd voor het uitvoeren van implementatiestappen voor een pijplijn. Elke agent heeft al de Bicep- en Azure-hulpprogramma's die u in eerdere modules hebt gebruikt, zodat deze hetzelfde kan doen als u doet vanaf uw eigen computer. In plaats van een persoon die opdrachten uitvoert, geeft de Azure Pipelines-service de agent de opdracht om de stappen uit te voeren die u in een YAML-bestand hebt gedefinieerd.

Azure Pipelines biedt meerdere typen agents voor verschillende besturingssystemen, zoals Ubuntu of Windows, en verschillende sets hulpprogramma's. Microsoft voert deze agents uit, dus u hoeft geen rekeninfrastructuur voor de agents te onderhouden. De agents worden soms door Microsoft gehoste agents of gehoste agents genoemd, omdat ze namens u worden gehost. Wanneer uw pijplijn wordt uitgevoerd, wordt automatisch een gehoste agent gemaakt. Wanneer uw pijplijn is uitgevoerd, wordt de gehoste agent automatisch verwijderd. U hebt geen rechtstreeks toegang tot gehoste agents, dus het is belangrijk dat uw pijplijn alle stappen bevat die nodig zijn om uw oplossing te implementeren.

Een agentgroep bevat meerdere agents van hetzelfde type. Wanneer u uw pijplijn maakt, laat u Azure Pipelines weten welke agentpool moet worden gebruikt om elke set stappen uit te voeren. Wanneer uw pijplijn wordt uitgevoerd, wacht deze totdat een agent uit de pool beschikbaar is en wordt vervolgens de agent geïnstrueerd om uw implementatiestappen uit te voeren. Een agent in de pool kan worden toegewezen om uw pijplijn uit te voeren.

Diagram met een pijplijn die wordt uitgevoerd op een agent in een agentgroep.

Notitie

U hebt de mogelijkheid om een aangepaste agent te maken die een zelf-hostende agent wordt genoemd. U kunt een zelf-hostende agent maken als u specifieke software hebt die u moet uitvoeren als onderdeel van uw pijplijn of als u precies wilt bepalen hoe de agent is geconfigureerd. In deze module bespreken we geen zelf-hostende agents, maar we bieden een koppeling naar meer informatie in de samenvatting.

Triggers

Als u Azure Pipelines wilt instrueren wanneer u uw pijplijn wilt uitvoeren, maakt u een trigger. U kunt kiezen uit meerdere typen triggers. Voorlopig gebruikt u een handmatige trigger. U laat Azure Pipelines handmatig weten wanneer u uw pijplijn gaat uitvoeren. Verderop in deze module leert u meer over andere typen triggers.

Diagram met een trigger voor het initiëren van een pijplijn.

Stappen

Een stap vertegenwoordigt één bewerking die door de pijplijn wordt uitgevoerd. Een stap is vergelijkbaar met een afzonderlijke opdracht die u uitvoert in Bash of PowerShell. Voor de meeste implementaties voert u verschillende stappen in een reeks uit. U definieert de volgorde en alle details van elke stap in uw YAML-pijplijnbestand.

Azure Pipelines biedt twee soorten stappen:

  • Scripts. Gebruik een scriptstap om één opdracht of een reeks opdrachten uit te voeren in Bash, PowerShell of de Windows-opdrachtshell.
  • Taken. Een taak is een handige manier om toegang te krijgen tot veel verschillende mogelijkheden zonder scriptinstructies te schrijven. Een ingebouwde taak kan bijvoorbeeld de Azure CLI- en Azure PowerShell-cmdlets uitvoeren om uw code te testen of bestanden te uploaden naar een FTP-server. Iedereen kan een taak schrijven en met andere gebruikers delen door de taak te publiceren in Visual Studio Marketplace. Er zijn een grote set commerciële en opensource-taken beschikbaar.

Sommige mensen gebruiken liever scriptinstructies in plaats van ingebouwde taken, omdat ze meer controle bieden over wat er wordt uitgevoerd. Andere personen gebruiken liever taken, zodat ze geen scripts hoeven te schrijven en te beheren. In deze module gebruiken we een combinatie van beide benaderingen.

Projecten

In Azure Pipelines vertegenwoordigt een taak een geordende set stappen. U hebt altijd ten minste één taak in een pijplijn en wanneer u complexe implementaties maakt, is het gebruikelijk om meer dan één taak te hebben.

Notitie

U kunt elke taak instellen voor uitvoering in een andere agentpool. Het uitvoeren van taken in verschillende agentpools is handig wanneer u oplossingen bouwt en implementeert die verschillende besturingssystemen in verschillende onderdelen van de taakpijplijn moeten gebruiken.

Stel dat u een iOS-app en de back-endservice van de app bouwt. Mogelijk hebt u één taak die wordt uitgevoerd in een macOS-agentgroep om de iOS-app en een andere taak te bouwen die wordt uitgevoerd in een Ubuntu- of Windows-agentgroep om de back-end te bouwen. U kunt zelfs aan de pijplijn vertellen dat de twee taken tegelijkertijd moeten worden uitgevoerd, waardoor de uitvoering van uw pijplijn wordt versneld.

In deze module declareren we de agentgroep in de hoofdmap van de pijplijndefinitiebestanden, zodat alle taken in de pijplijnen dezelfde agentgroep gebruiken.

Diagram met een pijplijn met twee stappen, beide binnen één taak.

Notitie

U kunt ook fasen in Azure Pipelines gebruiken om uw pijplijn te verdelen in logische fasen en handmatige controles toe te voegen op verschillende punten in de uitvoering van uw pijplijn. In toekomstige modules leert u meer over fasen.

Voorbeeld van basispijplijn

Nu u de basisconcepten in Azure Pipelines kent, gaan we eens kijken naar een eenvoudige pijplijndefinitie in YAML:

trigger: none

pool:
  vmImage: ubuntu-latest

jobs:
- job:
  steps:
  - script: echo Hello, world!
    displayName: 'Run a one-line script'
  
  - script: |
      echo We'll add more steps soon.
      echo For example, we'll add our Bicep deployment step.
    displayName: 'Run a multi-line script'

Laten we elk deel van het bestand in detail bekijken:

  • trigger geeft aan wanneer uw pijplijn moet worden uitgevoerd. In dit geval trigger: none geeft u Azure Pipelines aan dat u de pijplijn handmatig wilt activeren.
  • pool geeft de pijplijn aan welke agentpool moet worden gebruikt wanneer de pijplijnstappen worden uitgevoerd. In dit voorbeeld wordt de pijplijn uitgevoerd op een agent waarop het Ubuntu-besturingssysteem wordt uitgevoerd, die afkomstig is van de groep met door Microsoft gehoste agents.
  • jobs groepeer alle taken in uw pijplijn.
  • job vertelt uw pijplijn dat u één taak hebt.

    Tip

    Wanneer u slechts één taak in uw pijplijn hebt, kunt u de jobs en job trefwoorden weglaten. We hebben hier opgenomen job om duidelijk te maken hoe de concepten samenwerken in een pijplijn.

  • steps geeft de volgorde weer van de acties die in de taak moeten worden uitgevoerd. Het voorbeeld van YAML bestaat uit twee stappen. Met beide stappen wordt een eenvoudig script uitgevoerd om tekst te echoën. Elke stap heeft een displayName waarde, een door mensen leesbare naam voor de stap. U ziet de weergavenaam wanneer u de pijplijnlogboeken bekijkt. Als u een scriptstap met meerdere regels wilt maken, gebruikt u het pipe-teken (|) zoals wordt weergegeven in het voorbeeld. Nadat uw stap is uitgevoerd, ziet u de uitvoer in het pijplijnlogboek.

Belangrijk

In YAML-bestanden is inspringing belangrijk. Bekijk het voorbeeld van YAML. Sommige regels in de YAML worden ingesprongen door twee of vier spaties. Het aantal spaties dat u gebruikt, is belangrijk. Als u het bestand niet correct inspringt, kunnen Azure Pipelines het niet interpreteren. Visual Studio Code helpt u bij het vinden en oplossen van fouten in de inspringing van uw YAML-bestand.