Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
U hebt ten minste één agent nodig om uw code te bouwen of uw software te implementeren met behulp van Azure Pipelines. Naarmate uw codebasis en team groeien, hebt u meerdere agents nodig.
Wanneer uw pijplijn draait, start 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 |
|---|---|---|
| Agents die door Microsoft worden gehost | Agents die worden gehost en beheerd door Microsoft. | Azure DevOps Services |
| Zelf-gehoste agents | Agents die u configureert en beheert die worden gehost op uw virtuele machines (VM's). | Azure DevOps Services, Azure DevOps Server |
| Agents voor beheerde DevOps-pools | Beheerde DevOps-pools is een volledig beheerde dienst. Virtuele machines of containers die de agents onderbrengen, bevinden zich in een Microsoft Azure-abonnement en niet in uw eigen Azure-abonnement. | Azure DevOps Services |
| Azure Virtual Machine Scale Sets-agents | Een vorm van zelf-hostende agents die gebruikmaken van Azure Virtual Machine Scale Sets en die automatisch kunnen worden geschaald om te voldoen aan de vereisten. Als u overweegt om automatisch schalende, zelf-hostende agentgroepen te gebruiken, raden we u aan beheerde DevOps-pools te overwegen. Zie Het overzicht van beheerde DevOps-pools vergelijken met Azure Virtual Machine Scale Sets-agents en beheerde DevOps-pools voor meer informatie. |
Azure DevOps Services |
U kunt taken rechtstreeks uitvoeren op de hostcomputer van de agent of in een container.
Door Microsoft gehoste agents
Als uw pijplijnen zich in Azure Pipelines bevinden, kunt u uw taken handig uitvoeren met behulp van een door Microsoft gehoste agent. Met door Microsoft gehoste agents worden onderhoud en upgrades automatisch uitgevoerd.
U hebt altijd de nieuwste versie van de VM-image die u in uw pijplijn specificeert. Telkens wanneer u een pijplijn uitvoert, krijgt u een nieuwe virtuele machine voor elke taak in de pijplijn. De virtuele machine wordt na één taak verwijderd. Elke wijziging die een taak aanbrengt in het bestandssysteem van de virtuele machine, zoals het uitchecken van code, is niet beschikbaar 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 proces de eenvoudigste manier om uw taken uit te voeren. U kunt het eerst proberen om te zien of het werkt voor uw build of implementatie. Zo niet, dan kunt u Virtual Machine Scale Sets-agents of een zelf-hostende agent gebruiken.
Tip
U kunt gratis een door Microsoft gehoste agent proberen.
Zelfgehoste agents
Een zelf-gehoste agent is een agent die u instelt om taken uit te voeren en door uzelf beheerd. U kunt zelf-hostende agents gebruiken in Azure Pipelines of Azure DevOps Server. Zelf-hostende agents bieden u meer controle over het installeren van afhankelijke software die u nodig hebt voor uw builds en implementaties. Bovendien blijven caches en configuratie op machineniveau behouden van uitvoering tot uitvoering, waardoor de snelheid kan worden verhoogd.
Hoewel meerdere agents per machine kunnen worden geïnstalleerd, raden we u ten zeerste aan slechts één agent per machine te installeren. Wanneer u twee of meer agents installeert, kan dit 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 een door Microsoft gehoste agentgroep de eenvoudigste manier om aan de slag te gaan. Probeer het eens.
U kunt de agent installeren op Linux-, macOS- en Windows-computers. U kunt de agent ook installeren in een Docker-container. Zie voor meer informatie over het installeren van een zelf-gehoste agent:
In macOS moet u het speciale kenmerk in het downloadarchief wissen om te voorkomen dat de macOS Gatekeeper-beveiliging wordt weergegeven voor elke assembly in het TAR-bestand wanneer ./config.sh deze wordt uitgevoerd. Het volgende commando verwijdert het uitgebreide kenmerk van het bestand:
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 installeren op die computer die uw taken vereisen.
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 bugfixes bevat.
Node.js runner-versies
De agent wordt geleverd met verschillende versies van Node.js-bibliotheken ter ondersteuning van doeltaken die verschillende Node.js handlers gebruiken.
Alle officiële Azure DevOps-taken gebruiken Node.js 20-bibliotheek als een universele handler. Klanten kunnen echter nog steeds aangepaste taken gebruiken die gebruikmaken van de end-of-support-Node.js versies. Auteurs van extensies/aangepaste taken moeten hun taken bijwerken/testen met de huidige Node.js versies.
Zie Node.js runners in Azure Pipelines Agent voor meer informatie over de levenscyclus van Node.js runners in Azure Pipelines.
Azure Virtual Machine Scale Sets-agents
Azure Virtual Machine Scale Sets-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 dedicated agents te draaien. In tegenstelling tot door Microsoft gehoste agents, hebt u flexibiliteit betreffende de grootte en afbeelding van machines waarop agents worden uitgevoerd.
Azure Pipelines beheert het schalen van uw agents voor u. Geef de volgende factoren op:
- Een virtuele machineschaalset
- Het aantal agents dat u stand-by moet houden
- Een maximum aantal virtuele machines in het skaleringsset
Zie Azure Virtual Machine Scale Sets-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:
- Implementeert aanbevolen beveiligingsprocedures.
- Biedt manieren om kosten en prestaties te verdelen.
- Biedt paden voor de meest voorkomende scenario's.
- Vermindert aanzienlijk de tijd die nodig is om aangepaste pools te maken en te onderhouden.
Beheerde DevOps-pools is een evolutie van Azure Virtual Machine Scale Sets-agentgroepen. Het vereenvoudigt het maken van aangepaste pools nog verder door de schaalbaarheid en betrouwbaarheid van aangepaste pools te verbeteren. Beheerde DevOps-pools is een volledig beheerde dienst. De virtuele machines of containers waarin agenten worden aangestuurd bevinden zich in een Microsoft Azure-abonnement en niet in uw eigen Azure-abonnement, vergelijkbaar met agentpools van Azure Virtual Machine Scale Sets. Raadpleeg de Documentatie over beheerde DevOps-groepen voor meer informatie.
Parallelle banen
Het concept van parallelle taken vertegenwoordigt 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. Alle andere gelijktijdige taken worden in de wachtrij 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 betaalt u niet voor zelf-hostende gelijktijdige taken in releases. U bent alleen beperkt door het aantal agents dat u hebt.
Mogelijkheden
Elke zelfgehoste agent heeft een reeks mogelijkheden die aangeven wat de agent kan doen. Mogelijkheden zijn naam-/waardeparen die een van de volgende zijn:
- Mogelijkheden die door de agentsoftware worden gedetecteerd, zogenaamde systeemmogelijkheden.
- Mogelijkheden die u definieert, ook wel gebruikersmogelijkheden genoemd.
De agentsoftware bepaalt automatisch verschillende systeemmogelijkheden. Deze mogelijkheden omvatten de naam van de computer, het type besturingssysteem en de versies van bepaalde software die op de computer zijn geïnstalleerd. Omgevingsvariabelen die in de machine zijn gedefinieerd, worden ook automatisch weergegeven in de lijst met systeemmogelijkheden.
Wanneer u omgevingsvariabelen opslaat als mogelijkheden, worden de opgeslagen mogelijkheidswaarden gebruikt om de omgevingsvariabelen in te stellen wanneer een agent wordt uitgevoerd. Bovendien, wanneer u wijzigingen aanbrengt in omgevingsvariabelen terwijl de agent actief is, worden deze niet opgehaald en gebruikt door taken. Als u niet wilt dat gevoelige omgevingsvariabelen die wijzigen, als capaciteiten worden opgeslagen, kunt u de agent opdracht geven deze te negeren. Stel de VSO_AGENT_IGNORE omgevingsvariabele in 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.
Eisen en mogelijkheden zijn ontworpen voor gebruik met zelfgehoste agents, zodat taken kunnen worden gekoppeld aan een agent die voldoet aan de eisen van de taak. Wanneer u agents gebruikt die door Microsoft worden gehost, selecteert u een afbeelding voor de agent die aan de taakvereisten voldoet. 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 agentdetails bekijken, inclusief versie- en systeemmogelijkheden, en de gebruikersmogelijkheden ervan beheren. Ga naar Agentpools en selecteer het tabblad Mogelijkheden voor de gewenste agent.
Ga in uw webbrowser naar 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 .
Als u een nieuwe mogelijkheid wilt registreren bij de agent, selecteert u Een nieuwe mogelijkheid toevoegen.
Tip
Nadat u nieuwe software op een zelfgehoste agent hebt geïnstalleerd, moet u de agent opnieuw starten om de nieuwe functie beschikbaar te maken. 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 Pipelines of Azure DevOps Server. Het bepaalt welke taak moet worden uitgevoerd en rapporteert de logbestanden en de taakstatus. 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 kunt u de agent configureren voor 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. Als u een agent in die agentgroep wilt registreren, moet u de rol Agentgroepbeheerder hebben. De rol Agentgroepbeheerder 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.
Nadat de registratie is voltooid, downloadt de agent een
listener OAuth tokenen gebruikt deze om naar de taakwachtrij te luisteren.De agent luistert om te zien of een nieuwe taakaanvraag wordt geplaatst in de taakwachtrij in Azure Pipelines of Azure DevOps Server met behulp van een lange HTTP-poll. Wanneer een opdracht beschikbaar is, downloadt de agent de opdracht en een
job-specific OAuth token. Azure Pipelines of Azure DevOps Server genereert een tijdelijk token voor de scope-gebaseerde identiteit die is opgegeven in de pijplijn.De agent gebruikt het token voor toegang tot of het wijzigen van resources in Azure Pipelines of Azure DevOps Server binnen die taak. Het gebruikt bijvoorbeeld het token om toegang te krijgen tot broncode of testresultaten te uploaden.
De agent verwijdert het taakspecifieke
OAuthtoken nadat de taak is voltooid en controleert vervolgens of er een nieuwe taakaanvraag is met behulp van het OAuth-token van de listener.
De nettolading van de berichten die worden uitgewisseld tussen de agent en Azure Pipelines of Azure DevOps Server worden beveiligd met behulp van asymmetrische versleuteling.
Elke agent heeft een openbare en privésleutelparen, en de openbare sleutel wordt tijdens de registratie met de server uitgewisseld. De server gebruikt de openbare sleutel om de nettolading 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 geen UTF-8-codering gebruikt, kunnen er problemen optreden met logboekuitvoer. Logboeken kunnen bijvoorbeeld tekens bevatten die niet worden herkend door de codering van uw systeem, zodat ze mogelijk vervormde of ontbrekende symbolen lijken te zijn.
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. Door Microsoft gehoste agentgroepen hebben standaard verbinding met Azure-websites en -servers die worden uitgevoerd in Azure.
Als uw Azure-resources worden uitgevoerd in een virtueel Azure-netwerk, kunt u de IP-bereiken van de agent ophalen waar Microsoft-gehoste agents worden geïmplementeerd. Vervolgens kunt u de firewallregels voor uw virtuele Azure-netwerk 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 Azure DevOps Server. Dit proces wordt gedemonstreerd 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 agentenpool is alleen nodig op het moment van registratie en wordt niet opgeslagen op de agent. Deze wordt niet gebruikt in verdere communicatie tussen de agent en Azure Pipelines of Azure DevOps Server. Als u de agent wilt configureren, moet u ook een lokale beheerder op de server zijn.
Wanneer u een agent registreert, selecteert u een van de volgende verificatietypen. Het installatieproces van de agent vraagt u om de specifieke aanvullende informatie die vereist is voor elk verificatietype. Voor meer informatie, zie Zelf-gehoste agentverificatieopties.
- Persoonlijk toegangstoken.
- Alternatief: Verbinding maken met Azure DevOps Server 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: Verbinding maken met Azure DevOps Server als een andere gebruiker dan de aangemelde gebruiker via een Windows-verificatieschema (bijvoorbeeld 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 (bijvoorbeeld NTLM of Kerberos). U wordt niet om referenties gevraagd nadat u deze methode hebt geselecteerd.
Belangrijk
U moet uw server configureren om de verificatiemethode te ondersteunen voor het gebruik van alternatieve, onderhandelen of geïntegreerde verificatie.
De verificatiemethode die u gebruikt om de agent te registreren, 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-gehoste agent uitvoeren als een service of als een interactief proces.
Nadat u de agent hebt geconfigureerd, wordt u aangeraden deze eerst in de interactieve modus te proberen om te controleren of deze werkt. Voor productiegebruik raden we u vervolgens aan om de agent in een van de volgende modi uit te voeren, 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 een service: u kunt de servicebeheerder van het besturingssysteem gebruiken om de levenscyclus van de agent te beheren. De ervaring voor het automatisch upgraden van de agent is 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 (bijvoorbeeld om UI-tests uit te voeren). Wanneer u een agent configureert voor uitvoering in deze modus, wordt de schermbeveiliging 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. Andere gebruikers hebben mogelijk toegang tot de computer en kunnen het account gebruiken dat automatisch wordt aangemeld. Als u de agent zodanig instelt dat deze op die manier werkt, moet u ervoor zorgen dat de computer fysiek beveiligd is (bijvoorbeeld in een beveiligde faciliteit).
Als u een extern bureaublad gebruikt om toegang te krijgen tot een computer waarop een agent draait met automatische aanmelding, zal het sluiten van het externe bureaublad ervoor zorgen dat de computer wordt vergrendeld. Eventuele UI-tests die op deze agent worden uitgevoerd, kunnen mislukken. Om dit probleem te voorkomen, gebruik de
tsconopdracht om de verbinding met het externe 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 door gebruik te maken van Windows-verificatie voor toegang tot een externe service, moet de agent draaien 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 geopend in de context van het agentaccount.
In Windows raden we u aan een serviceaccount zoals Netwerkservice of Lokale service te gebruiken. Deze accountmachtigingen zijn beperkt en hun wachtwoorden verlopen niet, dus de agent vereist minder beheer in de loop van de tijd.
Deze referenties verschillen van de referenties die u gebruikt wanneer u de agent registreert bij Azure Pipelines of Azure DevOps Server.
Agentversie en bijwerkingen
We werken de agentsoftware om de paar weken bij in Azure Pipelines. We geven de agentversie aan in het formaat {major}.{minor}. Als de agentversie 2.1 is, dan is 2 de hoofdversie en 1 de subversie.
We houden door Microsoft gehoste agents up-to-date. Als de nieuwere versie van de agent alleen verschilt in de secundaire versie, kunnen Azure Pipelines automatisch zelf-hostende agents bijwerken. De standaardinstelling is ingeschakeld. U kunt deze instelling configureren in agentpools door uw agent te selecteren en vervolgens Instellingen te selecteren. Er wordt een upgrade aangevraagd wanneer een platformfunctie of een van de taken in de pijplijn 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 upgraden vanaf het tabblad Agentpools onder uw organisatie. Pijplijnen kunnen niet worden uitgevoerd zonder een compatibele agent.
Zelf-gehoste agents bijwerken
Ga naarAgent-pools voor >.
Selecteer uw agentgroep en selecteer vervolgens Alle agents bijwerken.
U kunt agents ook afzonderlijk bijwerken door updateagent te selecteren in het menu ... .
Selecteer Bijwerken om te bevestigen.
Er wordt een updateaanvraag in de wachtrij geplaatst voor elke agent in de pool en deze wordt uitgevoerd wanneer alle actieve taken zijn voltooid. Een upgrade duurt doorgaans slechts enkele ogenblikpen. Deze hoeveelheid tijd is lang genoeg om de nieuwste versie van de agentsoftware (ongeveer 200 MB) te downloaden, uit te pakken en de agent opnieuw 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 Azure DevOps Server-update. We geven de agentversie aan in het formaat {major}.{minor}. Als de agentversie bijvoorbeeld 2.1 is, dan is de hoofdversie 2 en de subversie 1.
Wanneer uw Azure DevOps Server een nieuwere versie van de agent heeft en die nieuwere agent alleen verschilt in de secundaire versie, kan deze meestal automatisch worden bijgewerkt. Er wordt een upgrade aangevraagd wanneer een platformfunctie of een van de taken die u in de pijplijn 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. Ga naar Agentpools en selecteer het tabblad Mogelijkheden voor de gewenste agent, zoals beschreven in Agentmogelijkheden configureren.
Als u agentupdates programmatisch wilt activeren, kunt u de API voor agentupdates gebruiken, zoals beschreven in de sectie Hoe kan ik agentupdates programmatisch activeren voor een specifieke agentgroep?.
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:
- Ramen:
%ProgramData%\Microsoft\Azure DevOps\Agents - Linux:
usr/share/Microsoft/Azure DevOps/Agents - Macos:
usr/share/Microsoft/Azure DevOps/Agents
Directorystructuur van de agent
Wanneer pijplijntaken worden uitgevoerd op agents, wordt er een mapstructuur gemaakt om de broncode, binaire bestanden en artefacten op te slaan.
De basismap van de agent is de map waarin de agent is geïnstalleerd. De map bevindt zich meestal:
-
Door Microsoft gehoste agents:
C:\agents\<agent version>in Windows,/Users/runner/runners/<agent version>in macOS en/home/vsts/agents/<agent version>op Linux. -
Zelf-gehoste agents:
C:\agentop Windows,Users/<username>/agent(~/agent) op macOS en/home/vsts/agentop Linux.
De werkmap van de agent bevat de werkruimte waarin de bron- en taakuitvoer wordt opgeslagen. De werkmap bevindt zich meestal:
-
Door Microsoft gehoste agent:
C:\aop Windows,/Users/runner/workop macOS en/home/vsts/workop Linux. -
Zelfgehoste agent:
C:\agent\_workop Windows,~/agent/workop macOS en/home/agent/_workop Linux.
De structuur van de werkmap is:
- /work directory
- /1 build directory/pipeline workspace
- /s source/working directory
- /b binaries directory
- /a artifacts staging directory
- /TestResults Test results directory
| Directory | Beschrijving | Voorbeelden | Vooraf gedefinieerde variabelen |
|---|---|---|---|
| Thuismap van de agent | Waar de agent is geïnstalleerd. | Door Microsoft gehoste agent: Ramen: C:\agents\3.248.0Linux: /home/vsts/agents/3.248.0Macos: /Users/runner/runners/3.248.0Zelfgehoste agent Ramen: C:\agentLinux: home/agent Macos: ~/agent |
Agent.HomeDirectory |
| Werkgids | Waar de agent de broncode, binaire bestanden en artefacten opslaat. | Door Microsoft gehoste agent: Ramen: C:\aLinux: /home/vsts/workMacos: /Users/runner/workZelfgehoste agent Ramen: C:\agent\_workLinux: /home/agent/_work Macos: ~/agent/work |
Agent.WorkFolderAgent.RootDirectory System.WorkFolder |
| Werkruimte of map bouwen | Waar de pijplijntaak wordt uitgevoerd. | Door Microsoft gehoste agent: Ramen: C:\a\1Linux: /home/vsts/work/1Macos: /Users/runner/work/1Zelfgehoste agent Ramen: C:\agent\_work\1Linux: /home/agent/_work/1 Macos: ~/agent/work/1 |
Agent.BuildDirectoryPipeline.Workspace |
s - Bron- of werkmap |
Bevat de broncode die uit de opslagplaats is uitgecheckt. Als er meerdere checkout stappen in uw taak zijn, wordt uw broncode uitgecheckt naar mappen met de naam van de opslagplaatsen als submap van s. |
Door Microsoft gehoste agent: Ramen: C:\a\1\sLinux: /home/vsts/work/1/sMacos: /Users/runner/work/1/sZelfgehoste agent Ramen: C:\agent\_work\1\sLinux: /home/agent/_work/1/s Macos: ~/agent/work/1/s |
Build.SourcesDirectory Build.RepositoryLocalPathSystem.DefaultWorkingDirectory |
b - Binary-directory |
Bevat de build-uitvoer. | Door Microsoft gehoste agent: Ramen: C:\a\1\bLinux: /home/vsts/work/1/bMacos: /Users/runner/work/1/bZelfgehoste agent Ramen: C:\agent\_work\1\bLinux: /home/agent/_work/1/bMacos: ~/agent/work/1/b |
Build.BinariesDirectory |
a - Map voor fasering van artefacten |
Bevat de build-artefacten. Wordt opgeschoond tussen uitvoeringen op zelfgehoste agents. | Door Microsoft gehoste agent: Ramen: C:\a\1\aLinux: /home/vsts/work/1/aMacos: /Users/runner/work/1/aZelfgehoste agent Ramen: C:\agent\_work\1\aLinux: /home/agent/_work/1/a Macos: ~/agent/work/1/a |
Build.StagingDirectoryBuild.ArtifactStagingDirectory System.ArtifactsDirectory |
TestResults map |
Bevat de testresultaten. Wordt opgeschoond tussen uitvoeringen op zelfgehoste agents. | Door Microsoft gehoste agent: Ramen: C:\a\1\TestResultsLinux: /home/vsts/work/1/TestResultsMacos: /Users/runner/work/1/TestResultsZelfgehoste agent Ramen: C:\agent\_work\1\TestResultsLinux: /home/agent/_work/1/TestResults Macos: ~/agent/work/1/TestResults |
Common.TestResultsDirectory |
Op door Microsoft gehoste agents wordt bij elke uitvoering een andere agent gebruikt, zodat de werkmap niet wordt bewaard tussen uitvoeringen. Op zelf-hostende agents worden alleen de map voor fasering van artefacten en testresultatenmappen standaard opgeschoond tussen uitvoeringen. Voor meer informatie over de optie voor het schoonmaken van de werkruimte, zie Werkruimte.
Zie Vooraf gedefinieerde variabelenvoor meer informatie over vooraf gedefinieerde variabelen.
Veelgestelde vragen
Hoe kan ik controleren of ik de nieuwste agentversie heb?
Ga naar het tabblad Agentpools :
Selecteer 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 .
Zoek naar de
Agent.Versionfunctie. U kunt deze waarde vergelijken met de meest recente gepubliceerde agentversie op de pagina Azure Pipelines Agent .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 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 (bijvoorbeeld USB-station, netwerkoverdracht, enzovoort). Plaats de agentbestanden onder de
%ProgramData%\Microsoft\Azure DevOps\Agentsmapje. Als er geen map met het label Agents is, maakt u er een.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. Als u een zelf-hostende agent gebruikt, kunt u incrementele builds uitvoeren. Als u bijvoorbeeld een pijplijn definieert die de opslagplaats niet opschoont 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 werkt mogelijk goed 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 schijfruimte en invoer-/uitvoerbronnen verbruiken.
U kunt ook problemen ondervinden als parallelle buildtaken gebruikmaken van dezelfde implementatie van singleton-hulpprogramma's (bijvoorbeeld npm-pakketten). Een build kan een afhankelijkheid bijwerken terwijl een andere build deze gebruikt, wat onbetrouwbare resultaten en fouten kan veroorzaken.
Wat doen agents wanneer pijplijntaken worden geannuleerd?
Voor door Microsoft gehoste agents wordt de agent afgebroken en teruggeplaatst in de Azure Pipelines-pool.
Voor zelf-hostende agents:
- Wanneer een pijplijn 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.
De tijd van de eerste aanvraag tot beëindiging bedraagt ongeveer 10 seconden.
De opdrachten die zijn uitgegeven aan het proces om de pijplijn te annuleren, verschillen op basis van het besturingssysteem van de agent:
- macOS en Linux: de verzonden opdrachten worden
SIGINTgevolgd doorSIGTERM, gevolgd doorSIGKILL. - Windows: De opdrachten die naar het proces worden verzonden, worden
Ctrl+Cgevolgd doorCtrl+Break, gevolgd doorProcess.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
Notitie
Zie API- en Azure DevOps Server-versietoewijzing voor meer informatie.
URI Parameters
| Naam | In | Vereist | Type | Beschrijving |
|---|---|---|---|---|
agentId |
zoekopdracht | False |
tekenreeks | De agent die moet worden bijgewerkt. Als deze niet is opgegeven, wordt een update geactiveerd voor alle agents. |
organization |
path | True |
tekenreeks | De naam van de Azure DevOps-organisatie. |
poolId |
path | True |
geheel getal int32 | De agentpool die wordt gebruikt. |
api-version |
zoekopdracht | False |
tekenreeks | De versie van de API die moet worden gebruikt. Als u deze versie van de API wilt gebruiken, moet de waarde worden ingesteld op 6.0. |
Als u een agentupdate wilt activeren, moet de aanvraagbody leeg zijn.
De Azure Pipelines-agent is open source op GitHub.
Verwante inhoud
Zie de volgende modules van de build-toepassingen met Azure DevOps-leertraject voor meer informatie over agents: