Zelf-hostende Windows-agents
Azure DevOps Services
Als u Windows-, Azure- en andere Visual Studio-oplossingen wilt bouwen en implementeren, hebt u ten minste één Windows-agent nodig. Windows-agents kunnen ook Java- en Android-apps bouwen.
Dit artikel bevat richtlijnen voor het gebruik van de 3.x-agentsoftware met Azure DevOps Services en de huidige versies van Azure DevOps Server. Zie Azure DevOps Server ondersteunt de 3.x-agent voor een lijst met Azure DevOps Server-versies die ondersteuning bieden voor de 3.x-agent.
Notitie
In dit artikel wordt beschreven hoe u een zelf-hostende agent configureert. Als u Azure DevOps Services en een door Microsoft gehoste agent gebruikt, kunt u het instellen van een zelf-hostende Windows-agent overslaan.
Meer informatie over agents
Als u al weet wat een agent is en hoe het werkt, kunt u meteen naar de volgende secties gaan. Maar als u meer achtergrondinformatie wilt over wat ze doen en hoe ze werken, raadpleegt u Azure Pipelines-agents.
Vereisten controleren
Zorg ervoor dat uw computer aan de volgende vereisten voldoet:
- Versie van besturingssysteem
- Client-besturingssysteem
- Windows 7 SP1 ESU
- Windows 8.1
- Windows 10
- Windows 11
- Server-besturingssysteem
- Windows Server 2012 of hoger
- Client-besturingssysteem
- De agentsoftware installeert een eigen versie van .NET, zodat er geen .NET-vereiste is.
- PowerShell 3.0 of hoger
- Subversion : als u bouwt vanuit een subversion-opslagplaats, moet u de Subversion-client op de computer installeren.
- Aanbevolen - Visual Studio-buildhulpprogramma's (2015 of hoger)
U moet agentinstallatie de eerste keer handmatig uitvoeren. Nadat u weet hoe agents werken of als u het instellen van veel agents wilt automatiseren, kunt u overwegen om configuratie zonder toezicht te gebruiken.
Hardwarespecificaties
De hardwarespecificaties voor uw agents variëren afhankelijk van uw behoeften, teamgrootte, enzovoort. Het is niet mogelijk om een algemene aanbeveling te doen die van toepassing is op iedereen. Als referentiepunt bouwt het Azure DevOps-team de code van gehoste agents met behulp van pijplijnen die gebruikmaken van gehoste agents. Aan de andere kant wordt het grootste deel van de Azure DevOps-code gebouwd door serverklassemachines van 24 kernen waarop vier zelf-hostende agents worden uitgevoerd.
Machtigingen voorbereiden
Informatiebeveiliging voor zelf-hostende agents
De gebruiker die de agent configureert, heeft beheerdersmachtigingen voor de pool nodig, maar de gebruiker die de agent uitvoert, doet dit niet.
De mappen die door de agent worden beheerd, moeten worden beperkt tot zo weinig mogelijk gebruikers omdat ze geheimen bevatten die kunnen worden ontsleuteld of geëxfileerd.
De Azure Pipelines-agent is een softwareproduct dat is ontworpen om code uit te voeren die wordt gedownload uit externe bronnen. Het kan inherent een doelwit zijn voor RCE-aanvallen (Remote Code Execution).
Daarom is het belangrijk om rekening te houden met het bedreigingsmodel rondom elk afzonderlijk gebruik van Pijplijnagents om werk uit te voeren en te bepalen wat de minimale machtigingen zijn die kunnen worden verleend aan de gebruiker die de agent uitvoert, op de computer waarop de agent wordt uitgevoerd, aan de gebruikers die schrijftoegang hebben tot de pijplijndefinitie, de Git-opslagplaatsen waar de yaml is opgeslagen, of de groep gebruikers die de toegang tot de pool beheren voor nieuwe pijplijnen.
Het is een best practice om de identiteit waarop de agent wordt uitgevoerd, te laten verschillen van de identiteit met machtigingen om de agent te verbinden met de pool. De gebruiker die de referenties (en andere agentgerelateerde bestanden) genereert, verschilt van de gebruiker die ze moet lezen. Daarom is het veiliger om zorgvuldig te overwegen toegang te verlenen tot de agentcomputer zelf en de agentmappen die gevoelige bestanden bevatten, zoals logboeken en artefacten.
Het is logisch om alleen toegang te verlenen tot de agentmap voor DevOps-beheerders en de gebruikersidentiteit die het agentproces uitvoert. Beheerders moeten het bestandssysteem mogelijk onderzoeken om inzicht te krijgen in buildfouten of logboekbestanden ophalen om Azure DevOps-fouten te kunnen rapporteren.
Bepalen welke gebruiker u gaat gebruiken
Als eenmalige stap moet u de agent registreren. Iemand met toestemming om de agentwachtrij te beheren, moet deze stappen uitvoeren. De agent gebruikt de referenties van deze persoon niet in de dagelijkse bewerking, maar is vereist om de registratie te voltooien. Meer informatie over hoe agents communiceren.
Controleer of de gebruiker gemachtigd is
Zorg ervoor dat het gebruikersaccount dat u gaat gebruiken, gemachtigd is om de agent te registreren.
Is de gebruiker eigenaar van een Azure DevOps-organisatie of TFS- of Azure DevOps Server-beheerder? Stop hier, u bent gemachtigd.
Anders:
Open een browser en navigeer naar het tabblad Agentpools voor uw Azure Pipelines-organisatie of Azure DevOps Server of TFS-server:
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.
Selecteer de pool aan de rechterkant van de pagina en klik vervolgens op Beveiliging.
Als het gebruikersaccount dat u gaat gebruiken niet wordt weergegeven, vraagt u een beheerder om het toe te voegen. De beheerder kan een beheerder van een agentgroep, een eigenaar van een Azure DevOps-organisatie of een TFS- of Azure DevOps Server-beheerder zijn.
Als het een implementatiegroepagent is, kan de beheerder een beheerder van een implementatiegroep, een eigenaar van een Azure DevOps-organisatie of een TFS- of Azure DevOps Server-beheerder zijn.
U kunt een gebruiker toevoegen aan de beheerdersrol van de implementatiegroep op het tabblad Beveiliging op de pagina Implementatiegroepen in Azure Pipelines.
Notitie
Als u een bericht als volgt ziet: De identiteit kan niet worden toegevoegd. Probeer een andere identiteit. U hebt waarschijnlijk de bovenstaande stappen gevolgd voor een organisatie-eigenaar of TFS- of Azure DevOps Server-beheerder. Je hoeft niets te doen. u bent al gemachtigd om de agentgroep te beheren.
De agent downloaden en configureren
Azure-pipelines
Meld u aan bij de computer met het account waarvoor u machtigingen hebt voorbereid, zoals hierboven is uitgelegd.
Meld u in uw webbrowser aan bij Azure Pipelines en navigeer 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.
Selecteer de standaardgroep , selecteer het tabblad Agents en kies Nieuwe agent.
Kies Windows in het dialoogvenster Agent ophalen.
Selecteer in het linkerdeelvenster de processorarchitectuur van de geïnstalleerde Versie van het Windows-besturingssysteem op uw computer. De x64-agentversie is bedoeld voor 64-bits Windows, terwijl de x86-versie is bedoeld voor 32-bits Windows. Als u niet zeker weet welke versie van Windows is geïnstalleerd, volgt u deze instructies om erachter te komen.
Klik in het rechterdeelvenster op de knop Downloaden .
Volg de instructies op de pagina om de agent te downloaden.
Pak de agent uit in de map van uw keuze. Zorg ervoor dat het pad naar de map geen spaties bevat, omdat hulpprogramma's en scripts niet altijd goed escape-spaties bevatten. Een aanbevolen map is
C:\agents
. Extraheren in de downloadmap of andere gebruikersmappen kan machtigingsproblemen veroorzaken.
Belangrijk
U wordt ten zeerste aangeraden de agent te configureren vanuit een PowerShell-venster met verhoogde bevoegdheid. Als u wilt configureren als een service, is dit vereist.
U mag Windows PowerShell ISE niet gebruiken om de agent te configureren.
Belangrijk
Om veiligheidsredenen raden we u ten zeerste aan ervoor te zorgen dat de map agents (C:\agents
) alleen kan worden bewerkt door beheerders.
Notitie
Vermijd het gebruik van mintty-shells, zoals git-bash, voor agentconfiguratie. Mintty is niet volledig compatibel met de systeemeigen Windows-API voor invoer/uitvoer (hier vindt u informatie) en we kunnen niet garanderen dat het installatiescript in dit geval correct werkt.
De agent installeren
Start een venster met verhoogde bevoegdheden (PowerShell) en stel de locatie in op de locatie waar u de agent hebt uitgepakt.
cd C:\agents
Voer
config.cmd
uit. Hiermee stelt u een reeks vragen om de agent te configureren..\config.cmd
Server-URL
Wanneer setup vraagt om uw server-URL, voor Azure DevOps Services, antwoord https://dev.azure.com/{your-organization}
.
Wanneer de installatie vraagt om uw server-URL, voor Azure DevOps Server, antwoord https://{my-server}/{my-collection}
.
Verificatietype agent instellen
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.
Windows-agents hebben de volgende twee extra verificatieopties op Azure DevOps Server en TFS.
- Onderhandelen over Verbinding maken met TFS als een andere gebruiker dan de aangemelde gebruiker via een Windows-verificatieschema, zoals NTLM of Kerberos. Nadat u Onderhandelen hebt geselecteerd, wordt u gevraagd om referenties.
- Geïntegreerd (standaard) Verbind een Windows-agent met TFS 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 TFS voor meer informatie over hoe agents communiceren met Azure Pipelines na de registratie.
Interactieve modus of servicemodus kiezen
Zie Agents: Interactive vs. service voor hulp bij het uitvoeren van de agent in de interactieve modus of als een service.
Als u ervoor kiest om uit te voeren als een service (die wordt aanbevolen), moet de gebruikersnaam die u uitvoert, 20 tekens of minder zijn.
De agent uitvoeren
Interactief uitvoeren
Als u de agent hebt geconfigureerd om interactief uit te voeren, voert u de volgende opdracht uit om de agent te starten.
.\run.cmd
Als u de agent opnieuw wilt starten, drukt u op Ctrl+C om de agent te stoppen en voert u deze uit run.cmd
om de agent opnieuw op te starten.
Notitie
Als u de agent uitvoert vanuit PowerShell Core om Windows PowerShell-taken uit te voeren, kan uw pijplijn mislukken met een fout zoals Error in TypeData "System.Security.AccessControl.ObjectSecurity": The member is already present
. Dit komt doordat Windows PowerShell de PSModulePath
omgevingsvariabele, die PowerShell Core-modulelocaties bevat, overneemt van het bovenliggende proces.
Als tijdelijke oplossing kunt u de knop AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL
true
van de agent instellen op in de pijplijn. Hierdoor kan de agent opnieuw worden ingesteld PSModulePath
voordat taken worden uitgevoerd.
variables:
AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL: "true"
Als dit probleem niet wordt opgelost, of als u aangepaste modulelocaties wilt gebruiken, kunt u de $Env:PSModulePath
variabele zo nodig instellen in het PowerShell Core-venster voordat u de agent uitvoert.
Eenmaal uitvoeren
U kunt er ook voor kiezen dat de agent slechts één taak accepteert en vervolgens afsluit. Gebruik de volgende opdracht om deze configuratie uit te voeren.
.\run.cmd --once
Agents in deze modus accepteren slechts één taak en draaien vervolgens probleemloos (handig voor uitvoering in Docker op een service zoals Azure Container Instances).
Uitvoeren als een service
Als u de agent zo hebt geconfigureerd dat deze wordt uitgevoerd als een service, wordt deze automatisch gestart. U kunt de actieve agentstatus bekijken en beheren vanuit de services-module. Voer een van de volgende bewerkingen uit services.msc
en zoek deze:
- 'Azure Pipelines Agent (naam van uw agent)'
- 'VSTS-agent (naam van uw agent)'
- "vstsagent. (organisatienaam). (naam van uw agent)"
Notitie
Om meer flexibiliteit te bieden met toegangsbeheer van een agent die als een service wordt uitgevoerd, is het mogelijk om het sid-type van de agentservice in te stellen als [SERVICE_SID_TYPE_UNRESTRICTED
] via vlag of prompt tijdens de interactieve configuratiestroom.
De agentservice is standaard geconfigureerd met SERVICE_SID_TYPE_NONE
.
Raadpleeg deze documentatie voor meer informatie over SID-typen.
Als u de agent opnieuw wilt starten, klikt u met de rechtermuisknop op de vermelding en kiest u Opnieuw opstarten.
Notitie
Als u het aanmeldingsaccount van de agent moet wijzigen, doet u dit niet vanuit de services-module. Zie in plaats daarvan de onderstaande informatie om de agent opnieuw te configureren.
Als u uw agent wilt gebruiken, voert u een taak uit met behulp van de pool van de agent. Als u geen andere pool hebt gekozen, bevindt uw agent zich in de standaardgroep .
Een agent vervangen
Als u een agent wilt vervangen, volgt u de stappen voor het downloaden en configureren van de agent opnieuw.
Wanneer u een agent configureert met dezelfde naam als een agent die al bestaat, wordt u gevraagd of u de bestaande agent wilt vervangen. Als u antwoordt Y
, moet u ervoor zorgen dat u de agent verwijdert (zie hieronder) die u vervangt. Anders wordt na een paar minuten conflicten een van de agents afgesloten.
Een agent verwijderen en opnieuw configureren
De agent verwijderen:
.\config remove
Nadat u de agent hebt verwijderd, kunt u deze opnieuw configureren.
Configuratie zonder toezicht
De agent kan worden ingesteld vanuit een script zonder menselijke tussenkomst.
U moet doorgeven --unattended
en de antwoorden op alle vragen.
Als u een agent wilt configureren, moet deze de URL voor uw organisatie kennen of de referenties van iemand die gemachtigd is om agents in te stellen.
Alle andere antwoorden zijn optioneel.
Elke opdrachtregelparameter kan worden opgegeven met behulp van een omgevingsvariabele: plaats de naam in hoofdletters en prepend VSTS_AGENT_INPUT_
.
Bijvoorbeeld, VSTS_AGENT_INPUT_PASSWORD
in plaats van op te --password
geven.
Vereiste opties
--unattended
- Setup van agent vraagt niet om informatie en alle instellingen moeten worden opgegeven op de opdrachtregel--url <url>
- URL van de server. Bijvoorbeeld: https://dev.azure.com/myorganization of http://my-azure-devops-server:8080/tfs--auth <type>
- verificatietype. Geldige waarden zijn:pat
(Persoonlijk toegangstoken)SP
(Service-principal) (Vereist agentversie 3.227.1 of hoger)negotiate
(Kerberos of NTLM)alt
(Basisverificatie)integrated
(Standaardreferenties voor Windows)
Verificatieopties
- Als u het volgende hebt gekozen
--auth pat
:--token <token>
- geeft uw persoonlijke toegangstoken op- U kunt ook een OAuth 2.0-token doorgeven als de
--token
parameter.
- Als u hebt gekozen
--auth negotiate
of--auth alt
:--userName <userName>
- geeft een Windows-gebruikersnaam in de indelingdomain\userName
ofuserName@domain.com
--password <password>
- geeft een wachtwoord
- Als u het volgende hebt gekozen
--auth SP
:--clientID <clientID>
- geeft de client-id van de service-principal op met toegang tot registeragenten--tenantId <tenantID>
- geeft de tenant-id op waarin de service-principal is geregistreerd--clientSecret <clientSecret>
- geeft het clientgeheim van de service-principal- Zie Een agent registreren met behulp van een service-principal voor meer informatie
Namen van pools en agents
--pool <pool>
- naam van de pool voor de agent die moet worden toegevoegd--agent <agent>
- agentnaam--replace
- vervang de agent in een pool. Als een andere agent met dezelfde naam luistert, mislukt deze met een conflict
Agent instellen
--work <workDirectory>
- werkmap waarin taakgegevens worden opgeslagen. De standaardinstelling is_work
onder de hoofdmap van de agentmap. De werkmap is eigendom van een bepaalde agent en mag niet worden gedeeld tussen meerdere agents.--acceptTeeEula
- accepteer de gebruiksrechtovereenkomst van Team Explorer Everywhere (alleen macOS en Linux)--disableloguploads
- stream of verzend de uitvoer van het consolelogboek niet naar de server. In plaats daarvan kunt u deze ophalen uit het bestandssysteem van de agenthost nadat de taak is voltooid.
Opstarten met Alleen Windows
--runAsService
- de agent configureren om te worden uitgevoerd als een Windows-service (hiervoor is beheerdersmachtiging vereist)--runAsAutoLogon
- configureer automatisch aanmelden en voer de agent uit bij het opstarten (hiervoor is beheerdersmachtiging vereist)--windowsLogonAccount <account>
- gebruikt met--runAsService
of--runAsAutoLogon
om de Windows-gebruikersnaam op te geven in de indelingdomain\userName
ofuserName@domain.com
--windowsLogonPassword <password>
- gebruikt met--runAsService
of--runAsAutoLogon
om windows-aanmeldingswachtwoord op te geven (niet vereist voor door groepen beheerde serviceaccounts en ingebouwde Windows-accounts, zoals 'NT AUTHORITY\NETWORK SERVICE')--enableservicesidtypeunrestricted
- wordt gebruikt--runAsService
voor het configureren van de agent met service-SID-type alsSERVICE_SID_TYPE_UNRESTRICTED
(hiervoor is beheerdersmachtiging vereist)--overwriteAutoLogon
- wordt gebruikt om--runAsAutoLogon
de bestaande automatische aanmelding op de computer te overschrijven--noRestart
- wordt gebruikt--runAsAutoLogon
om te voorkomen dat de host opnieuw wordt opgestart nadat de agentconfiguratie is voltooid
Problemen met het configureren van de agent oplossen met de runAsAutoLogon
optie
Als u de agent configureert met de runAsAutoLogon
optie, wordt de agent elke keer uitgevoerd nadat de computer opnieuw is opgestart.
Voer de volgende stappen uit als de agent niet wordt uitgevoerd nadat de computer opnieuw is opgestart.
Als de agent al is geconfigureerd op de computer
Voordat u de agent opnieuw configureert, moet u de oude agentconfiguratie verwijderen. Probeer daarom deze opdracht uit te voeren vanuit de agentmap:
.\config.cmd remove --auth 'PAT' --token '<token>'
Controleer of de agent is verwijderd uit uw agentgroep nadat u de opdracht hebt uitgevoerd:
<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents
Verwijder de agent handmatig uit de agentgroep als deze niet is verwijderd door de opdracht uit te voeren.
Probeer vervolgens de agent opnieuw te configureren door deze opdracht uit te voeren vanuit de agentmap:
.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'
Geef de naam van de agent (een specifieke unieke naam) op en controleer of deze agent na het opnieuw configureren in uw agentgroep werd weergegeven.
Het is veel beter om een agentarchief uit te pakken (dat hier kan worden gedownload) en deze opdracht uit te voeren vanuit de nieuwe uitgepakte agentmap.
Controleer of de Windows-registersleutel is vastgelegd en correct is opgeslagen
Voer de whoami /user
opdracht uit om de <sid>
. Open Registry Editor
en volg het pad:
Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Controleer of er de VSTSAgent
sleutel is. Verwijder deze sleutel als deze bestaat, sluit Registry Editor
en configureer de agent door de .\config.cmd
opdracht (zonder argumenten) uit te voeren vanuit de agentmap. Voordat u de vraag Enter Restart the machine at a later time?
beantwoordt, opent Registry Editor
u het opnieuw en controleert u of de VSTSAgent
sleutel is weergegeven. Druk Enter
op de vraag om de vraag te beantwoorden en controleer of de VSTSAgent
sleutel op de plaats blijft na het opnieuw opstarten van de computer.
Controleren of Windows-registersleutels goed werken op uw computer
Maak een autorun.cmd
bestand met de volgende regel: echo "Hello from AutoRun!"
.
Open Registry Editor
en maak in het pad boven een nieuw sleutel-waardepaar met de sleutel AutoRun
en de waarde
C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"
Start uw computer opnieuw op. U hebt een probleem met Windows-registersleutels als u geen consolevenster met het Hello from AutoRun!
bericht ziet.
Alleen implementatiegroep
--deploymentGroup
- de agent configureren als een implementatiegroepagent--deploymentGroupName <name>
- wordt gebruikt om--deploymentGroup
de implementatiegroep op te geven waaraan de agent moet deelnemen--projectName <name>
- wordt gebruikt om--deploymentGroup
de projectnaam in te stellen--addDeploymentGroupTags
- wordt gebruikt--deploymentGroup
om aan te geven dat tags voor implementatiegroepen moeten worden toegevoegd--deploymentGroupTags <tags>
- wordt gebruikt om--addDeploymentGroupTags
de door komma's gescheiden lijst met tags voor de implementatiegroepagent op te geven, bijvoorbeeld 'web, db'
Alleen omgevingen
--addvirtualmachineresourcetags
- gebruikt om aan te geven dat omgevingsresourcetags moeten worden toegevoegd--virtualmachineresourcetags <tags>
- wordt gebruikt om--addvirtualmachineresourcetags
de door komma's gescheiden lijst met tags voor de omgevingsresourceagent op te geven, bijvoorbeeld 'web, db'
.\config --help
geeft altijd de meest recente vereiste en optionele antwoorden weer.
Diagnostiek
Als u problemen ondervindt met uw zelf-hostende agent, kunt u proberen diagnostische gegevens uit te voeren. Na het configureren van de agent:
.\run --diagnostics
Dit wordt uitgevoerd via een diagnostisch pakket dat u kan helpen het probleem op te lossen. De diagnostische functie is beschikbaar vanaf agentversie 2.165.0.
Netwerkdiagnose voor zelf-hostende agents
Stel de waarde van Agent.Diagnostic
in op true
om aanvullende logboeken te verzamelen die kunnen worden gebruikt voor het oplossen van netwerkproblemen voor zelf-hostende agents. Zie Netwerkdiagnose voor zelf-hostende agents voor meer informatie
Help over andere opties
Voor meer informatie over andere opties:
.\config --help
De Help biedt informatie over verificatiealternatieven en configuratie zonder toezicht.
Functies
De mogelijkheden van uw agent worden gecatalogeerd en geadverteerd in de pool, zodat alleen de builds en releases die eraan kunnen worden verwerkt, worden toegewezen. Zie mogelijkheden voor build- en releaseagenten.
In veel gevallen moet u, nadat u een agent hebt geïmplementeerd, software of hulpprogramma's installeren. Over het algemeen moet u installeren op uw agents welke software en hulpprogramma's u op uw ontwikkelcomputer gebruikt.
Als uw build bijvoorbeeld de npm-taak bevat, wordt de build niet uitgevoerd, tenzij er een buildagent in de pool is geïnstalleerd waarop NPM is geïnstalleerd.
Belangrijk
De mogelijkheden omvatten alle omgevingsvariabelen en de waarden die worden ingesteld wanneer de agent wordt uitgevoerd. Als een van deze waarden verandert terwijl de agent wordt uitgevoerd, moet de agent opnieuw worden opgestart om de nieuwe waarden op te halen. Nadat u nieuwe software op een agent hebt geïnstalleerd, moet u de agent opnieuw starten om de nieuwe mogelijkheid weer te geven in de pool, zodat de build kan worden uitgevoerd.
Als u omgevingsvariabelen wilt uitsluiten als mogelijkheden, kunt u deze aanwijzen door een omgevingsvariabele VSO_AGENT_IGNORE
in te stellen met een door komma's gescheiden lijst met variabelen die moeten worden genegeerd.
Veelgestelde vragen
Welke versie van Git wordt door mijn agent uitgevoerd?
De Windows-agent gebruikt standaard de versie van Git die is gebundeld met de agentsoftware. Microsoft raadt aan om de versie van Git te gebruiken die is gebundeld met de agent, maar u hebt verschillende opties om dit standaardgedrag te overschrijven en de versie van Git te gebruiken die de agentmachine in het pad heeft geïnstalleerd.
- Stel een pijplijnvariabele in met de naam
System.PreferGitFromPath
true
in uw pijplijnen. - Op zelf-hostende agents kunt u een bestand met de naam .env maken in de hoofdmap van de agent en een
System.PreferGitFromPath=true
regel toevoegen aan het bestand. Zie Hoe kan ik verschillende omgevingsvariabelen instellen voor elke afzonderlijke agent voor meer informatie?
Als u de versie van Git wilt zien die door een pijplijn wordt gebruikt, kunt u de logboeken voor een checkout
stap in uw pijplijn bekijken, zoals wordt weergegeven in het volgende voorbeeld.
Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1
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 volgende map:
- 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.
- 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.
Ik voer een firewall uit en mijn code bevindt zich in Azure-opslagplaatsen. Met welke URL's moet de agent communiceren?
Als u een agent uitvoert in een beveiligd netwerk achter een firewall, moet u ervoor zorgen dat de agent communicatie kan starten met de volgende URL's en IP-adressen.
Domein-URL | Beschrijving |
---|---|
https://{organization_name}.pkgs.visualstudio.com |
Azure DevOps Packaging-API voor organisaties die het {organization_name}.visualstudio.com domein gebruiken |
https://{organization_name}.visualstudio.com |
Voor organisaties die het {organization_name}.visualstudio.com domein gebruiken |
https://{organization_name}.vsblob.visualstudio.com |
Azure DevOps-telemetrie voor organisaties die het {organization_name}.visualstudio.com domein gebruiken |
https://{organization_name}.vsrm.visualstudio.com |
Release Management Services voor organisaties die gebruikmaken van het {organization_name}.visualstudio.com domein |
https://{organization_name}.vssps.visualstudio.com |
Azure DevOps Platform Services voor organisaties die het {organization_name}.visualstudio.com domein gebruiken |
https://{organization_name}.vstmr.visualstudio.com |
Azure DevOps Test Management Services voor organisaties die het {organization_name}.visualstudio.com domein gebruiken |
https://*.blob.core.windows.net |
Azure Artifacts |
https://*.dev.azure.com |
Voor organisaties die het dev.azure.com domein gebruiken |
https://*.vsassets.io |
Azure Artifacts via CDN |
https://*.vsblob.visualstudio.com |
Azure DevOps-telemetrie voor organisaties die het dev.azure.com domein gebruiken |
https://*.vssps.visualstudio.com |
Azure DevOps Platform Services voor organisaties die het dev.azure.com domein gebruiken |
https://*.vstmr.visualstudio.com |
Azure DevOps Test Management Services voor organisaties die het dev.azure.com domein gebruiken |
https://app.vssps.visualstudio.com |
Voor organisaties die het {organization_name}.visualstudio.com domein gebruiken |
https://dev.azure.com |
Voor organisaties die het dev.azure.com domein gebruiken |
https://login.microsoftonline.com |
Microsoft Entra-aanmelding |
https://management.core.windows.net |
Azure Management-API's |
https://vstsagentpackage.azureedge.net |
Agentpakket |
Om ervoor te zorgen dat uw organisatie werkt met bestaande firewall- of IP-beperkingen, moet u ervoor zorgen dat dev.azure.com
*dev.azure.com
uw toegestane IP-adressen zijn geopend en bijgewerkt met de volgende IP-adressen, op basis van uw IP-versie. Als u momenteel de acceptatie van de 13.107.6.183
en 13.107.9.183
IP-adressen opgeeft, laat u deze staan, omdat u ze niet hoeft te verwijderen.
IPv4-bereiken
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
IPv6-bereiken
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Notitie
Zie Toegestane adreslijsten en netwerkverbindingen voor meer informatie over toegestane adressen.
Hoe kan ik de agent uitvoeren met een zelfondertekend certificaat?
Notitie
Het uitvoeren van de agent met een zelfondertekend certificaat is alleen van toepassing op Azure DevOps Server.
De agent uitvoeren met een zelfondertekend certificaat
Hoe kan ik de agent achter een webproxy uitvoeren?
De agent achter een webproxy uitvoeren
Hoe kan ik de agent opnieuw opstarten
Als u de agent interactief uitvoert, raadpleegt u de instructies voor opnieuw opstarten in Uitvoeren interactief. Als u de agent als een service uitvoert, start u de agent opnieuw door de stappen in Uitvoeren als een service uit te voeren.
Hoe kan ik verschillende omgevingsvariabelen instellen voor elke afzonderlijke agent?
Maak een .env
bestand onder de hoofdmap van de agent en plaats de omgevingsvariabelen die u in het bestand wilt instellen in de volgende indeling en start de agent opnieuw op.
MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4
Hoe kan ik de agent configureren om een webproxy te omzeilen en verbinding te maken met Azure Pipelines?
Als u wilt dat de agent uw proxy omzeilt en rechtstreeks verbinding maakt met Azure Pipelines, moet u uw webproxy configureren om de agent toegang te geven tot de volgende URL's.
Voor organisaties die het *.visualstudio.com
domein gebruiken:
https://login.microsoftonline.com
https://app.vssps.visualstudio.com
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com
Voor organisaties die het dev.azure.com
domein gebruiken:
https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com
Om ervoor te zorgen dat uw organisatie werkt met bestaande firewall- of IP-beperkingen, moet u ervoor zorgen dat dev.azure.com
*dev.azure.com
uw toegestane IP-adressen zijn geopend en bijgewerkt met de volgende IP-adressen, op basis van uw IP-versie. Als u momenteel de acceptatie van de 13.107.6.183
en 13.107.9.183
IP-adressen opgeeft, laat u deze staan, omdat u ze niet hoeft te verwijderen.
IPv4-bereiken
13.107.6.0/24
13.107.9.0/24
13.107.42.0/24
13.107.43.0/24
IPv6-bereiken
2620:1ec:4::/48
2620:1ec:a92::/48
2620:1ec:21::/48
2620:1ec:22::/48
Notitie
Met deze procedure kan de agent een webproxy omzeilen. Uw build-pijplijn en scripts moeten uw webproxy nog steeds omzeilen voor elke taak en elk hulpprogramma dat u in uw build uitvoert.
Als u bijvoorbeeld een NuGet-taak gebruikt, moet u uw webproxy zo configureren dat de URL wordt overgeslagen voor de server waarop de NuGet-feed wordt gehost die u gebruikt.
Ik gebruik TFS en de URL's in de bovenstaande secties werken niet voor mij. Waar kan ik hulp krijgen?
Ik gebruik TFS on-premises en ik zie sommige van deze functies niet. Waarom niet?
Sommige van deze functies zijn alleen beschikbaar in Azure Pipelines en zijn nog niet on-premises beschikbaar. Sommige functies zijn on-premises beschikbaar als u een upgrade hebt uitgevoerd naar de nieuwste versie van TFS.
Wat is SERVICE_SID_TYPE_UNRESTRICTED inschakelen voor de agentservice?
Wanneer u de agentsoftware op Windows Server configureert, kunt u de beveiligings-id van de service opgeven vanaf de volgende prompt.
Enter enable SERVICE_SID_TYPE_UNRESTRICTED for agent service (Y/N) (press enter for N)
Eerdere versies van de agentsoftware stellen het type SERVICE_SID_TYPE_NONE
servicebeveiligings-id in op, wat de standaardwaarde is voor de huidige agentversies. Als u het type id van de beveiligingsservice wilt SERVICE_SID_TYPE_UNRESTRICTED
configureren, drukt u op Y
.
Zie SERVICE_SID_INFO structuur en beveiligings-id's voor meer informatie.