Azure Pipelines-agents
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Als u uw code wilt bouwen of uw software wilt implementeren met behulp van Azure Pipelines, hebt u ten minste één agent nodig. Naarmate uw codebasis en team groeien, hebt u meer agents nodig.
Wanneer uw pijplijn wordt uitgevoerd, begint het systeem een of meer taken. Een agent is een computerinfrastructuur met geïnstalleerde agentsoftware die één taak tegelijk uitvoert.
Azure Pipelines biedt verschillende typen agents.
Agenttype | Beschrijving | Beschikbaarheid |
---|---|---|
Door Microsoft gehoste agents | Agents die worden gehost en beheerd door Microsoft | Azure DevOps Services |
Zelf-hostende agents | Agents die u configureert en beheert, gehost op uw VM's | Azure DevOps Services, Azure DevOps Server |
Azure Virtual Machine Scale Set-agents | Een vorm van zelf-hostende agents, met behulp van Virtuele-machineschaalsets van Azure, die automatisch kunnen worden geschaald om te voldoen aan de vereisten | Azure DevOps Services |
Agents voor beheerde DevOps-pools | Beheerde DevOps-pools is een volledig beheerde service waarbij virtuele machines of containers die de agents inschakelen in een Microsoft Azure-abonnement en niet in uw eigen Azure-abonnement wonen | Azure DevOps Services |
Taken kunnen rechtstreeks worden uitgevoerd op de hostcomputer van de agent of in een container.
Door Microsoft gehoste agents
Als uw pijplijnen zich in Azure Pipelines bevinden, hebt u een handige optie om uw taken uit te voeren met behulp van een door Microsoft gehoste agent. Met door Microsoft gehoste agents worden onderhoud en upgrades voor u geregeld. U krijgt altijd de nieuwste versie van de VM-installatiekopieën die u in uw automatisering opgeeft. Telkens wanneer u een automatisering uitvoert, krijgt u een nieuwe virtuele machine voor elke taak in de automatisering. De virtuele machine wordt verwijderd na één taak (wat betekent dat elke wijziging die een taak aanbrengt in het bestandssysteem van de virtuele machine, zoals het uitchecken van code, niet beschikbaar is voor de volgende taak). Door Microsoft gehoste agents kunnen taken rechtstreeks op de VIRTUELE machine of in een container uitvoeren.
Azure Pipelines biedt een vooraf gedefinieerde agentpool met de naam Azure Pipelines met door Microsoft gehoste agents.
Voor veel teams is dit de eenvoudigste manier om uw taken uit te voeren. U kunt het eerst proberen en zien of het werkt voor uw build of implementatie. Zo niet, dan kunt u schaalsetagents of een zelf-hostende agent gebruiken.
Tip
U kunt gratis een door Microsoft gehoste agent proberen.
Zelf-hostende agents
Een agent die u zelf instelt en beheert om taken uit te voeren, is een zelf-hostende agent. U kunt zelf-hostende agents gebruiken in Azure-pijplijnen of Azure DevOps Server, voorheen Team Foundation Server (TFS) genoemd. Zelf-hostende agents bieden u meer controle over het installeren van afhankelijke software die nodig is voor uw builds en implementaties. Bovendien blijven caches en configuratie op machineniveau behouden van uitvoering tot uitvoering, waardoor de snelheid kan worden verhoogd.
Notitie
Hoewel meerdere agents per machine kunnen worden geïnstalleerd, raden we u ten zeerste aan slechts één agent per machine te installeren. Het installeren van twee of meer agents kan de prestaties en het resultaat van uw pijplijnen nadelig beïnvloeden.
Tip
Voordat u een zelf-hostende agent installeert, wilt u mogelijk zien of een door Microsoft gehoste agentgroep voor u werkt. In veel gevallen is dit de eenvoudigste manier om aan de slag te gaan. Probeer het eens.
U kunt de agent installeren op Linux-, macOS- of Windows-computers. U kunt ook een agent installeren in een Docker-container. Zie voor meer informatie over het installeren van een zelf-hostende agent:
Notitie
In macOS moet u het speciale kenmerk in het downloadarchief wissen om te voorkomen dat Gatekeeper-beveiliging wordt weergegeven voor elke assembly in het tar-bestand wanneer ./config.sh
deze wordt uitgevoerd. Met de volgende opdracht wordt het uitgebreide kenmerk van het bestand gewist:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz ## replace V.v.v with the version in the filename downloaded.
# then unpack the gzip tar file normally:
tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz
Nadat u de agent op een computer hebt geïnstalleerd, kunt u alle andere software op die computer installeren, zoals vereist voor uw taken.
Notitie
Agents zijn breed compatibel met eerdere versies. Elke versie van de agent moet compatibel zijn met elke Versie van Azure DevOps, zolang Azure DevOps geen hogere versie van de agent vereist.
We ondersteunen alleen de meest recente versie van de agent, omdat dit de enige versie is die gegarandeerd alle up-to-date patches en oplossingen voor fouten bevat.
Runner-versies van Node
De agent wordt geleverd met verschillende versies van NodeJS-bibliotheken ter ondersteuning van doeltaken die gebruikmaken van verschillende Node-handlers.
Alle officiële Azure DevOps-taken maken gebruik van Node 20 als een universele handler, maar klanten kunnen nog steeds aangepaste taken gebruiken die gebruikmaken van de end-of-life Node 6-, Node 10- of Node 16-bibliotheken. Ter ondersteuning van achterwaartse compatibiliteit met Node dat momenteel het einde van de levensduur heeft bereikt, bieden we de volgende selfservicemethoden om de aangewezen Node-runner handmatig te installeren.
Installeer de Node 6-runner handmatig. Zie Knooppunt 6-ondersteuning voor meer informatie over het handmatig installeren van de Node 6-runner voor meer informatie.
Gebruik de NodeTaskRunnerInstaller@0 taak in uw pijplijnen waarvoor de verouderde Node 6-bibliotheek is vereist.
Installeer een agentpakket met Node 6.
Azure Pipelines biedt twee versies van agentpakketten.
- vsts-agent-* -pakketten ondersteunen Node 6.
- pipelines-agent-* -pakketten bieden geen ondersteuning voor Node 6. Deze versie van het pakket wordt in de toekomst het standaardagentpakket.
Als u weet dat u geen afhankelijke taken van Node 6 gebruikt en u niet wilt dat Node 6 op uw agentcomputer is geïnstalleerd, kunt u de agent installeren vanuit de sectie Downloads van alternatieve agent vanhttps://github.com/microsoft/azure-pipelines-agent/releases.
Azure Virtual Machine Scale Set-agents
Azure Virtual Machine Scale Set-agents zijn een vorm van zelf-hostende agents die automatisch kunnen worden geschaald om aan uw eisen te voldoen. Deze elasticiteit vermindert de noodzaak om altijd toegewezen agents uit te voeren. In tegenstelling tot door Microsoft gehoste agents hebt u flexibiliteit over de grootte en de installatiekopie van machines waarop agents worden uitgevoerd.
U geeft een virtuele-machineschaalset op, het aantal agents dat u stand-by wilt houden, een maximum aantal virtuele machines in de schaalset en Azure Pipelines beheert het schalen van uw agents voor u.
Zie Azure Virtual Machine Scale Set-agents voor meer informatie.
Agents voor beheerde DevOps-pools
Met beheerde DevOps-pools kunnen ontwikkelteams snel en eenvoudig Azure DevOps-agentgroepen samenstellen die zijn afgestemd op de specifieke behoeften van een team. Beheerde DevOps-pools implementeren aanbevolen beveiligingsprocedures, biedt knoppen voor het verdelen van kosten en prestaties, biedt paden voor de meest voorkomende scenario's en vermindert aanzienlijk de tijd die wordt besteed aan het maken en onderhouden van aangepaste pools.
Beheerde DevOps-pools is een evolutie van Azure DevOps Virtual Machine Scale Set-agentgroepen, waardoor het maken van aangepaste pools nog verder wordt vereenvoudigd door de schaalbaarheid en betrouwbaarheid van aangepaste pools te verbeteren. Beheerde DevOps-groepen is een volledig beheerde service waarbij virtuele machines of containers de agents inschakelen in een Microsoft Azure-abonnement en niet in uw eigen Azure-abonnement, zoals bij het gebruik van Azure DevOps Virtual Machine Scale Set-agentgroepen. Raadpleeg de Documentatie over beheerde DevOps-groepen voor meer informatie.
Parallelle taken
Parallelle taken vertegenwoordigen het aantal taken dat u tegelijkertijd in uw organisatie kunt uitvoeren. Als uw organisatie één parallelle taak heeft, kunt u één taak tegelijk uitvoeren in uw organisatie, waarbij andere gelijktijdige taken in de wachtrij worden geplaatst totdat de eerste taak is voltooid. Als u twee taken tegelijk wilt uitvoeren, hebt u twee parallelle taken nodig. In Azure Pipelines kunt u parallelle taken uitvoeren op een door Microsoft gehoste infrastructuur of op uw eigen (zelf-hostende) infrastructuur.
Microsoft biedt standaard een gratis servicelaag in elke organisatie die ten minste één parallelle taak bevat. Afhankelijk van het aantal gelijktijdige automatiseringen die u moet uitvoeren, hebt u mogelijk meer parallelle taken nodig om tegelijkertijd meerdere door Microsoft gehoste of zelf-hostende agents te gebruiken. Zie Parallelle taken in Azure Pipelines voor meer informatie over parallelle taken en verschillende gratis servicelagen.
Mogelijk hebt u meer parallelle taken nodig om meerdere agents tegelijk te gebruiken:
Belangrijk
Vanaf Azure DevOps Server 2019 hoeft u niet te betalen voor zelf-hostende gelijktijdige taken in releases. U bent alleen beperkt door het aantal agents dat u hebt.
Functies
Elke zelf-hostende agent heeft een set mogelijkheden die aangeven wat deze kan doen. Mogelijkheden zijn naam-waardeparen die automatisch worden gedetecteerd door de agentsoftware, systeemmogelijkheden genoemd, of mogelijkheden die u definieert, zogenaamde gebruikersmogelijkheden.
De agentsoftware bepaalt automatisch verschillende systeemmogelijkheden, zoals de naam van de computer, het type besturingssysteem en versies van bepaalde software die op de computer is geïnstalleerd. Omgevingsvariabelen die in de machine zijn gedefinieerd, worden ook automatisch weergegeven in de lijst met systeemmogelijkheden.
Notitie
Het opslaan van omgevingsvariabelen als mogelijkheden betekent dat wanneer een agent wordt uitgevoerd, de opgeslagen mogelijkheidswaarden worden gebruikt om de omgevingsvariabelen in te stellen. Wijzigingen in omgevingsvariabelen die worden aangebracht terwijl de agent wordt uitgevoerd, worden ook niet opgehaald en gebruikt door een taak. Als u gevoelige omgevingsvariabelen hebt die veranderen en u niet wilt dat ze worden opgeslagen als mogelijkheden, kunt u ze laten negeren door de VSO_AGENT_IGNORE
omgevingsvariabele in te stellen, met een door komma's gescheiden lijst met variabelen die moeten worden genegeerd. Is bijvoorbeeld PATH
een kritieke variabele die u wilt negeren als u software installeert.
Wanneer u een pijplijn maakt, geeft u bepaalde vereisten van de agent op. Het systeem verzendt de taak alleen naar agents met mogelijkheden die voldoen aan de vereisten die zijn opgegeven in de pijplijn. Als gevolg hiervan kunt u met agentmogelijkheden taken doorsturen naar specifieke agents.
Notitie
Eisen en mogelijkheden zijn ontworpen voor gebruik met zelf-hostende agents, zodat taken kunnen worden gekoppeld aan een agent die voldoet aan de vereisten van de taak. Wanneer u door Microsoft gehoste agents gebruikt, selecteert u een installatiekopie voor de agent die voldoet aan de vereisten van de taak, dus hoewel het mogelijk is om mogelijkheden toe te voegen aan een door Microsoft gehoste agent, hoeft u geen mogelijkheden te gebruiken met door Microsoft gehoste agents.
Vereisten configureren
Als u een vraag wilt toevoegen aan uw YAML-buildpijplijn, voegt u de demands:
regel toe aan de pool
sectie.
pool:
name: Default
demands: SpecialSoftware # exists check for SpecialSoftware
U kunt controleren op het bestaan van een mogelijkheid of een vergelijking maken met de waarde van een mogelijkheid. Zie YAML-schema - Eisen voor meer informatie.
Agentmogelijkheden configureren
U kunt de details van een agent bekijken, inclusief de versie- en systeemmogelijkheden, en de gebruikersmogelijkheden beheren door naar agentgroepen te navigeren en het tabblad Mogelijkheden voor de gewenste agent te selecteren.
Navigeer in uw webbrowser naar agentpools:
Meld u aan bij uw organisatie (
https://dev.azure.com/{yourorganization}
).Kies Azure DevOps, organisatie-instellingen.
Kies Agentpools.
Meld u aan bij uw projectverzameling (
http://your-server/DefaultCollection
).Kies Azure DevOps, Verzamelingsinstellingen.
Kies Agentpools.
Kies Azure DevOps, Verzamelingsinstellingen.
Kies Agentpools.
Ga naar het tabblad Mogelijkheden:
Selecteer op het tabblad Agentpools de gewenste agentpool.
Selecteer Agents en kies de gewenste agent.
Kies het tabblad Mogelijkheden .
Notitie
Door Microsoft gehoste agents geven geen systeemmogelijkheden weer. Zie Een door Microsoft gehoste agent gebruiken voor een lijst met software die is geïnstalleerd op door Microsoft gehoste agents.
Selecteer op het tabblad Agentpools de gewenste pool.
Selecteer Agents en kies de gewenste agent.
Kies het tabblad Mogelijkheden .
Selecteer op het tabblad Agentpools de gewenste pool.
Selecteer Agents en kies de gewenste agent.
Kies het tabblad Mogelijkheden .
Als u een nieuwe mogelijkheid wilt registreren bij de agent, kiest u Een nieuwe mogelijkheid toevoegen.
Tip
Nadat u nieuwe software op een zelf-hostende agent hebt geïnstalleerd, moet u de agent opnieuw starten om de nieuwe mogelijkheid weer te geven. Zie Windows-agent opnieuw opstarten, Linux-agent opnieuw opstarten en Mac-agent opnieuw opstarten voor meer informatie.
Communicatie
Communication with Azure Pipelines (Communicatie met Azure Pipelines)
Communicatie met Azure DevOps Server
De agent communiceert met Azure-pijplijnen of Azure DevOps Server om te bepalen welke taak moet worden uitgevoerd en om de logboeken en taakstatus te rapporteren. De agent initieert deze communicatie altijd. Alle berichten van de agent naar Azure-pijplijnen of Azure DevOps Server vinden plaats via HTTP of HTTPS, afhankelijk van hoe u de agent configureert. Met dit pull-model kan de agent worden geconfigureerd in verschillende topologieën, zoals wordt weergegeven in de volgende voorbeelden.
Hier volgt een algemeen communicatiepatroon tussen de agent en Azure Pipelines of Azure DevOps Server.
De gebruiker registreert een agent bij Azure Pipelines of Azure DevOps Server door deze toe te voegen aan een agentgroep. U moet een agentgroepbeheerder zijn om een agent in die agentgroep te registreren. De identiteit van de beheerder van de agentgroep is alleen nodig op het moment van registratie en blijft niet behouden op de agent. Deze wordt niet gebruikt in verdere communicatie tussen de agent en Azure Pipelines of Azure DevOps Server. Zodra de registratie is voltooid, downloadt de agent een OAuth-token voor listener en gebruikt deze om naar de taakwachtrij te luisteren.
De agent luistert of er een nieuwe taakaanvraag wordt geplaatst in de taakwachtrij in Azure Pipelines/Azure DevOps Server met behulp van een lange HTTP-poll. Wanneer een taak beschikbaar is, downloadt de agent de taak en een taakspecifiek OAuth-token. Azure Pipelines/Azure DevOps Server genereert een kortlevend token voor de bereikidentiteit die is opgegeven in de pijplijn. Het token wordt door de agent gebruikt voor toegang tot of wijziging van resources in Azure Pipelines of Azure DevOps Server binnen die taak. Bijvoorbeeld om toegang te krijgen tot broncode of testresultaten te uploaden.
De agent verwijdert het taakspecifieke OAuth-token nadat de taak is voltooid en gaat vervolgens terug om te controleren of er een nieuwe taakaanvraag is met behulp van het OAuth-token van de listener.
De payload van de berichten die worden uitgewisseld tussen de agent en Azure-pijplijnen/Azure DevOps Server wordt beveiligd met behulp van asymmetrische versleuteling. Elke agent heeft een paar met een openbare sleutel en een persoonlijke sleutel, en de openbare sleutel wordt tijdens de registratie met de server uitgewisseld. De server gebruikt de openbare sleutel om de payload van de taak te versleutelen voordat deze naar de agent wordt verzonden. De agent ontsleutelt de inhoud van de taak met behulp van de persoonlijke sleutel. Met deze methode worden geheimen beveiligd die zijn opgeslagen in pijplijnen of variabelegroepen wanneer ze worden uitgewisseld met de agent.
Notitie
De agent biedt ondersteuning voor UTF-8-clientcoderingsuitvoer. Als uw systeem echter een andere codering heeft dan UTF-8, kunnen er problemen optreden met de uitvoer van logboeken. De logboeken kunnen bijvoorbeeld tekens bevatten die niet worden herkend door de codering van uw systeem, zodat ze kunnen worden weergegeven als vervormde of ontbrekende symbolen.
Communicatie voor implementatie op doelservers
Wanneer u de agent gebruikt om artefacten te implementeren op een set servers, moet deze 'line of sight'-verbinding hebben met die servers. De door Microsoft gehoste agentpools hebben standaard connectiviteit met Azure-websites en servers die worden uitgevoerd in Azure.
Notitie
Als uw Azure-resources worden uitgevoerd in een virtueel Azure-netwerk, kunt u de IP-bereiken van de agent ophalen waarin door Microsoft gehoste agents worden geïmplementeerd, zodat u de firewallregels voor uw Azure VNet kunt configureren om toegang door de agent toe te staan.
Als uw on-premises omgevingen geen verbinding hebben met een door Microsoft gehoste agentgroep, wat meestal het geval is vanwege tussenliggende firewalls, moet u zelf-hostende agents handmatig configureren op on-premises computers. De agents moeten verbinding hebben met de on-premises doelomgevingen en toegang tot internet om verbinding te maken met Azure Pipelines of Team Foundation Server, zoals wordt weergegeven in het volgende schema.
Verificatie
Als u een agent wilt registreren, moet u lid zijn van de beheerdersrol in de agentgroep. De identiteit van de beheerder van de agentgroep is alleen nodig op het moment van registratie en blijft niet behouden op de agent. Deze wordt niet gebruikt in verdere communicatie tussen de agent en Azure Pipelines of Azure DevOps Server. Bovendien moet u een lokale beheerder op de server zijn om de agent te configureren.
Wanneer u een agent registreert, kiest u uit de volgende verificatietypen en wordt u gevraagd om de specifieke aanvullende informatie die vereist is voor elk verificatietype. Zie Zelf-hostende agentverificatieopties voor meer informatie.
- Persoonlijk toegangstoken
- Alternatieve verbinding maken met Azure DevOps Server of TFS met behulp van basisverificatie. Wanneer u Alternatief selecteert, wordt u gevraagd om uw referenties.
Daarnaast hebben Windows-agents de volgende twee verificatieopties op Azure DevOps Server.
- Onderhandelen over Verbinding maken met Azure DevOps Server als een andere gebruiker dan de aangemelde gebruiker via een Windows-verificatieschema, zoals New Technology LAN Manager (NTLM) of Kerberos. Nadat u Negotiate hebt geselecteerd, wordt u gevraagd om referenties.
- Geïntegreerd (standaard) Verbind een Windows-agent met Azure DevOps Server met behulp van de referenties van de aangemelde gebruiker via een Windows-verificatieschema, zoals NTLM of Kerberos. U wordt niet om referenties gevraagd nadat u deze methode hebt gekozen.
Belangrijk
Uw server moet zijn geconfigureerd om de verificatiemethode te ondersteunen voor het gebruik van alternatieve, onderhandelen of geïntegreerde verificatie.
De verificatiemethode die wordt gebruikt voor het registreren van de agent, wordt alleen gebruikt tijdens de registratie van de agent. Zie Communicatie met Azure Pipelines of Azure DevOps Server voor meer informatie over hoe agents communiceren met Azure Pipelines na de registratie.
Interactief versus service
U kunt uw zelf-hostende agent uitvoeren als een service of een interactief proces.
Nadat u de agent hebt geconfigureerd, raden we u aan deze eerst in de interactieve modus te proberen om te controleren of deze werkt. Voor productiegebruik raden we u aan om vervolgens de agent uit te voeren in een van de volgende modi, zodat deze betrouwbaar in een actieve status blijft. Deze modi zorgen ook ervoor dat de agent automatisch wordt gestart als de machine opnieuw wordt opgestart.
Als service. U kunt de servicebeheerder van het besturingssysteem gebruiken om de levenscyclus van de agent te beheren. Bovendien is de ervaring voor het automatisch upgraden van de agent beter wanneer u de agent als een service uitvoert.
Als interactief proces waarbij automatisch aanmelden is ingeschakeld. In sommige gevallen moet u de agent mogelijk interactief uitvoeren voor productiegebruik, zoals voor het uitvoeren van UI-tests. Wanneer de agent is geconfigureerd voor uitvoering in deze modus, wordt de schermbeveiliging ook uitgeschakeld. Sommige domeinbeleidsregels kunnen verhinderen dat u automatisch aanmelden inschakelt of de schermbeveiliging uitschakelt. In dergelijke gevallen moet u mogelijk een uitzondering van het domeinbeleid zoeken of de agent uitvoeren op een werkgroepcomputer waarop het domeinbeleid niet van toepassing is.
Notitie
Er zijn beveiligingsrisico's wanneer u automatische aanmelding inschakelt of de schermbeveiliging uitschakelt, omdat u andere gebruikers in staat stelt om naar de computer te lopen en het account te gebruiken dat automatisch wordt aangemeld. Als u de agent zo configureert dat deze wordt uitgevoerd, moet u ervoor zorgen dat de computer fysiek is beveiligd; Bijvoorbeeld in een beveiligde faciliteit. Als u Extern bureaublad gebruikt voor toegang tot de computer waarop een agent wordt uitgevoerd met automatisch aanmelden, zorgt het sluiten van extern bureaublad ervoor dat de computer wordt vergrendeld en eventuele UI-tests die op deze agent worden uitgevoerd, mislukken. Om dit te voorkomen, gebruikt u de opdracht tscon om de verbinding met Extern bureaublad te verbreken. Voorbeeld:
%windir%\System32\tscon.exe 1 /dest:console
Agentaccount
Of u nu een agent als een service uitvoert of interactief, u kunt kiezen welk computeraccount u gebruikt om de agent uit te voeren. De keuze van het agentaccount is alleen afhankelijk van de behoeften van de taken die worden uitgevoerd in uw build- en implementatietaken.
Als u bijvoorbeeld taken wilt uitvoeren met behulp van Windows-verificatie voor toegang tot een externe service, moet de agent worden uitgevoerd met behulp van een account met toegang tot die service. Als u echter UI-tests uitvoert, zoals Selenium of Coded UI-tests waarvoor een browser is vereist, wordt de browser gestart in de context van het agentaccount.
In Windows moet u overwegen om een serviceaccount zoals Netwerkservice of Lokale service te gebruiken. Deze accountsmachtigingen zijn beperkt en hun wachtwoorden verlopen niet, wat betekent dat de agent minder beheer in de loop van de tijd vereist.
Deze referenties verschillen van de referenties die u gebruikt wanneer u de agent registreert bij Azure Pipelines of Azure DevOps Server.
Agentversie en upgrades
We werken de agentsoftware om de paar weken bij in Azure Pipelines.
We geven de agentversie in de indeling aan {major}.{minor}
.
Als de agentversie bijvoorbeeld is, is 2.1
2
de primaire versie en de secundaire versie.1
Door Microsoft gehoste agents worden altijd up-to-date gehouden. Als de nieuwere versie van de agent alleen verschilt in secundaire versie, kunnen Azure Pipelines automatisch zelf-hostende agents bijwerken. U kunt deze instelling configureren in agentgroepen, uw agent selecteren, Instellingen . De standaardwaarde is ingeschakeld. Er wordt een upgrade aangevraagd wanneer een platformfunctie of een van de taken die in de pijplijn worden gebruikt, een nieuwere versie van de agent vereist.
Als u een zelf-hostende agent interactief uitvoert of als er een nieuwere primaire versie van de agent beschikbaar is, moet u de agents mogelijk handmatig upgraden. U kunt de agents eenvoudig upgraden vanaf het tabblad Agentpools onder uw organisatie. Pijplijnen kunnen niet worden uitgevoerd zonder een compatibele agent
Zelf-hostende agents bijwerken
Navigeer naar Project-instellingen, Agentpools.
Selecteer uw agentgroep en kies Alle agents bijwerken.
U kunt agents ook afzonderlijk bijwerken door updateagent te kiezen in het menu ... .
Selecteer Bijwerken om de update te bevestigen.
Er wordt een updateaanvraag in de wachtrij geplaatst voor elke agent in de pool en wordt uitgevoerd wanneer alle actieve taken zijn voltooid. Het uitvoeren van een upgrade duurt doorgaans slechts enkele ogenblikpen: lang genoeg om de nieuwste versie van de agentsoftware (ongeveer 200 MB) te downloaden, uit te pakken en de agent opnieuw op te starten met de nieuwe versie. U kunt de status van uw agents controleren op het tabblad Agents .
We werken de agentsoftware bij met elke update in Azure DevOps Server.
We geven de agentversie in de indeling aan {major}.{minor}
.
Als de agentversie bijvoorbeeld is, is 2.1
de primaire versie 2 en de secundaire versie 1.
Wanneer uw Azure DevOps Server een nieuwere versie van de agent heeft en die nieuwere agent alleen verschilt in secundaire versie, kan deze meestal automatisch worden bijgewerkt. Er wordt een upgrade aangevraagd wanneer een platformfunctie of een van de taken die in de pijplijn worden gebruikt, een nieuwere versie van de agent vereist. Vanaf Azure DevOps Server 2019 hoeft u niet te wachten op een nieuwe serverrelease. U kunt een nieuwe versie van de agent uploaden naar uw toepassingslaag en die versie wordt aangeboden als een upgrade.
Als u de agent interactief uitvoert of als er een nieuwere primaire versie van de agent beschikbaar is, moet u de agents mogelijk handmatig upgraden. U kunt de agent eenvoudig upgraden vanaf het tabblad Agentpools onder uw projectverzameling. Pijplijnen kunnen niet worden uitgevoerd zonder een compatibele agent.
U kunt de versie van een agent bekijken door naar agentgroepen te navigeren en het tabblad Mogelijkheden voor de gewenste agent te selecteren, zoals beschreven in agentmogelijkheden configureren.
Als u agentupdates programmatisch wilt activeren, kunt u agentupdate-API gebruiken, zoals beschreven in de sectie Hoe kan ik agentupdates programmatisch activeren voor een specifieke agentgroep?.
Notitie
Voor servers zonder internettoegang kopieert u het zip-bestand van de agent handmatig naar de volgende map om te gebruiken als een lokaal bestand. Maak de map Agents als deze niet aanwezig is.
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- macOS:
usr/share/Microsoft/Azure DevOps/Agents
Maak de map Agents als deze niet aanwezig is.
Veelgestelde vragen
Hoe kan ik controleren of ik de nieuwste agentversie heb?
Ga naar het tabblad Agentpools :
Meld u aan bij uw organisatie (
https://dev.azure.com/{yourorganization}
).Kies Azure DevOps, organisatie-instellingen.
Kies Agentpools.
Meld u aan bij uw projectverzameling (
http://your-server/DefaultCollection
).Kies Azure DevOps, Verzamelingsinstellingen.
Kies Agentpools.
Kies Azure DevOps, Verzamelingsinstellingen.
Kies Agentpools.
Klik op de pool die de agent bevat.
Zorg ervoor dat de agent is ingeschakeld.
Ga naar het tabblad Mogelijkheden:
Selecteer op het tabblad Agentpools de gewenste agentpool.
Selecteer Agents en kies de gewenste agent.
Kies het tabblad Mogelijkheden .
Notitie
Door Microsoft gehoste agents geven geen systeemmogelijkheden weer. Zie Een door Microsoft gehoste agent gebruiken voor een lijst met software die is geïnstalleerd op door Microsoft gehoste agents.
Selecteer op het tabblad Agentpools de gewenste pool.
Selecteer Agents en kies de gewenste agent.
Kies het tabblad Mogelijkheden .
Selecteer op het tabblad Agentpools de gewenste pool.
Selecteer Agents en kies de gewenste agent.
Kies het tabblad Mogelijkheden .
Zoek naar de
Agent.Version
mogelijkheid. U kunt deze waarde controleren op basis van de meest recente gepubliceerde agentversie. Zie De Azure Pipelines-agent en controleer de pagina op het hoogste versienummer dat wordt vermeld.Elke agent wordt automatisch bijgewerkt wanneer een taak wordt uitgevoerd waarvoor een nieuwere versie van de agent is vereist. Als u sommige agents handmatig wilt bijwerken, klikt u met de rechtermuisknop op de pool en selecteert u Alle agents bijwerken.
Kan ik mijn agents bijwerken die deel uitmaken van een Azure DevOps Server-pool?
Ja. Vanaf Azure DevOps Server 2019 kunt u uw server configureren om te zoeken naar de agentpakketbestanden op een lokale schijf. Deze configuratie overschrijft de standaardversie die bij de server is geleverd op het moment van de release. Dit scenario is ook van toepassing wanneer de server geen toegang heeft tot internet.
Download vanaf een computer met internettoegang de nieuwste versie van de agentpakketbestanden (in .zip of .tar.gz formulier) op de GitHub-releasespagina van de Azure Pipelines Agent.
Breng de gedownloade pakketbestanden over naar elke Azure DevOps Server-toepassingslaag met behulp van een methode van uw keuze (zoals USB-station, netwerkoverdracht, enzovoort). Plaats de agentbestanden onder de
%ProgramData%\Microsoft\Azure DevOps\Agents
map. Maak de map Agents als deze niet aanwezig is.U bent er klaar voor! Uw Azure DevOps-server gebruikt nu de lokale bestanden wanneer de agents worden bijgewerkt. Elke agent wordt automatisch bijgewerkt wanneer een taak wordt uitgevoerd waarvoor een nieuwere versie van de agent is vereist. Maar als u sommige agents handmatig wilt bijwerken, klikt u met de rechtermuisknop op de pool en kiest u Alle agents bijwerken.
Hebben zelf-hostende agents prestatievoordelen ten opzichte van door Microsoft gehoste agents?
Ja, in veel gevallen wel. Specifiek:
Als u een zelf-hostende agent gebruikt, kunt u incrementele builds uitvoeren. Als u bijvoorbeeld een pijplijn definieert die de opslagplaats niet schoont en geen schone build uitvoert, worden uw builds doorgaans sneller uitgevoerd. U krijgt deze voordelen niet met een door Microsoft gehoste agent, tenzij u functies zoals caching gebruikt, omdat de agent wordt vernietigd nadat de pijplijn is voltooid.
Het kan langer duren voordat een door Microsoft gehoste agent uw build start. Hoewel het vaak een paar seconden duurt voordat uw taak is toegewezen aan een door Microsoft gehoste agent, kan het soms enkele minuten duren voordat een agent wordt toegewezen, afhankelijk van de belasting van ons systeem.
Kan ik meerdere zelf-hostende agents installeren op dezelfde computer?
Ja. Deze benadering kan goed werken voor agents die taken uitvoeren die niet veel gedeelde resources verbruiken. U kunt het bijvoorbeeld proberen voor agents die releases uitvoeren die voornamelijk implementaties organiseren en niet veel doen aan de agent zelf.
In andere gevallen krijgt u mogelijk niet veel efficiëntie door meerdere agents op dezelfde computer uit te voeren. Het is bijvoorbeeld niet de moeite waard voor agents die builds uitvoeren die veel schijf- en I/O-resources verbruiken.
U kunt ook problemen ondervinden als parallelle buildtaken dezelfde singleton-hulpprogramma-implementatie gebruiken, zoals npm-pakketten. Een build kan bijvoorbeeld een afhankelijkheid bijwerken terwijl een andere build zich midden in het gebruik bevindt, wat onbetrouwbare resultaten en fouten kan veroorzaken.
Wat is het gedrag van agents wanneer de pijplijntaken worden geannuleerd?
Voor door Microsoft gehoste agents wordt de agent afgebroken en teruggezet naar de Azure Automatiseringsgroep.
Voor zelf-hostende agents:
Wanneer een automatisering wordt geannuleerd, verzendt de agent een reeks opdrachten naar het proces dat de huidige stap uitvoert.
- De eerste opdracht wordt verzonden met een time-out van 7,5 seconden.
- Als het proces niet wordt beëindigd, wordt een tweede opdracht verzonden met een time-out van 2,5 seconden.
- Als het proces niet wordt beëindigd, wordt het door de agent afgebroken.
- Als het proces de twee eerste beëindigingsaanvragen negeert, wordt het geforceerd gedood.
Vanaf de eerste aanvraag tot beëindiging duurt het ongeveer 10 seconden.
De opdrachten die zijn uitgegeven aan het proces om de automatisering te annuleren, verschillen op basis van het besturingssysteem van de agent.
- macOS en Linux: de verzonden opdrachten zijn SIGINT, gevolgd door SIGTERM, gevolgd door SIGKILL.
- Windows: de opdrachten die naar het proces worden verzonden, zijn Ctrl+C, gevolgd door Ctrl+Break, gevolgd door Process.Kill.
Hoe kan ik agentupdates programmatisch activeren voor specifieke agentpools?
U kunt agentupdates voor de pool activeren met behulp van de volgende API:
POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
URI-parameters
Naam | In | Vereist | Type | Description |
---|---|---|---|---|
agentId |
query | Onwaar | tekenreeks | De agent die moet worden bijgewerkt. Als dit niet is opgegeven, wordt update geactiveerd voor alle agents. |
organization |
path | Waar | tekenreeks | De naam van de Azure DevOps-organisatie. |
poolId |
path | Waar | geheel getal int32 | De agentgroep die moet worden gebruikt |
api-version |
query | Onwaar | tekenreeks | De versie van de API die moet worden gebruikt. De waarde moet worden ingesteld op '6.0' om deze versie van de API te gebruiken. |
De aanvraagbody moet leeg zijn om agentupdates te activeren.
Notitie
Azure Pipelines Agent is open source op GitHub.
Meer informatie
Zie de volgende modules uit de build-toepassingen met Azure DevOps-leertraject voor meer informatie over agents.