Delen via


Zelf-gehoste 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 Biedt Azure DevOps Server ondersteuning voor de 3.x-agentvoor 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 agentconfigureert. Als u Azure DevOps Services en een door Microsoft gehoste agent gebruikt aan uw behoeften voldoet, 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.

Controleer de vereisten

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
  • 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 installeren op de computer.
  • Aanbevolen: Visual Studio build-tools (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 op 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 zelfgehoste 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 goede gewoonte om de identiteit waarop de agent wordt uitgevoerd, te laten verschillen van de identiteit met machtigingen om de agent aan de pool te koppelen. 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 zal de inloggegevens van deze persoon niet gebruiken in het dagelijks gebruik, maar zijn echter wel nodig 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, je hebt toestemming.

Anders:

  1. Open een browser en navigeer naar het tabblad Agentpools voor uw Azure Pipelines-organisatie of Azure DevOps Server of TFS-server:

    1. Meld u aan bij uw organisatie (https://dev.azure.com/{yourorganization}).

    2. Kies Azure DevOps, organisatie-instellingen.

      Organisatie-instellingen kiezen.

    3. Kies Agentpools.

      Kies het tabblad Agentpools.

    1. Meld u aan bij uw projectverzameling (http://your-server/DefaultCollection).

    2. Kies Azure DevOps, Verzamelingsinstellingen.

      Kies Verzamelingsinstellingen.

    3. Kies Agentpools.

      Agentpools kiezen.

  2. Selecteer de pool aan de rechterkant van de pagina en klik vervolgens op Beveiliging.

  3. 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: Sorry, we konden de identiteit niet toevoegen. Probeer een andere identiteit., hebt u waarschijnlijk de bovenstaande stappen gevolgd voor een organisatie-eigenaar of een beheerder van TFS of Azure DevOps Server. Je hoeft niets te doen. u bent al gemachtigd om de agentgroep te beheren.

De agent downloaden en configureren

Azure-pipelines

  1. Meld u aan bij de computer met het account waarvoor u machtigingen hebt voorbereid, zoals hierboven is uitgelegd.

  2. Meld u in uw webbrowser aan bij Azure Pipelines en navigeer naar het tabblad Agentpools :

    1. Meld u aan bij uw organisatie (https://dev.azure.com/{yourorganization}).

    2. Kies Azure DevOps, organisatie-instellingen.

      Organisatie-instellingen kiezen.

    3. Kies Agentpools.

      Kies het tabblad Agentpools.

    1. Meld u aan bij uw projectverzameling (http://your-server/DefaultCollection).

    2. Kies Azure DevOps, Verzamelingsinstellingen.

      Kies Verzamelingsinstellingen.

    3. Kies Agentpools.

      Agentpools kiezen.

  3. Selecteer de standaardgroep , selecteer het tabblad Agents en kies Nieuwe agent.

  4. Kies in het dialoogvenster Agent ophalenWindows.

  5. 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, volg deze instructies omte achterhalen.

  6. Klik in het rechterdeelvenster op de knop Download.

  7. Volg de instructies op de pagina om de agent te downloaden.

  8. Pak de agent uit in de directory 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 geen Windows PowerShell ISE- 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 Input/Output Windows-API (hier is informatie hierover) en we kunnen niet garanderen dat het installatiescript in dit geval correct werkt.

De agent installeren

  1. Start een venster met verhoogde bevoegdheden (PowerShell) en stel de locatie in op de locatie waar u de agent hebt uitgepakt.

    cd C:\agents 
    
    
  2. Voer config.cmduit. Hiermee stelt u een reeks vragen om de agent te configureren.

    .\config.cmd
    
    

Server-URL

Wanneer de installatie vraagt om uw server-URL, beantwoordt u https://dev.azure.com/{your-organization}voor Azure DevOps Services.

Wanneer de installatie vraagt om de URL van uw server, beantwoordt u https://{my-server}/{my-collection}voor Azure DevOps Server.

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. Voor meer informatie, zie zelfgehoste agentverificatieopties.

  • persoonlijk toegangstoken
  • Alternatieve Verbinding maken met Azure DevOps Server of TFS met behulp van basisverificatie. Wanneer u Alternatieve selecteert, wordt u om uw referenties gevraagd.

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ïntegreerde (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 Communication with Azure Pipelines or TFSvoor 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 te draaien als een service (wat wij aanbevelen), moet de gebruikersnaam waarmee u werkt, 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 run.cmd uit 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 omgevingsvariabele PSModulePath, die PowerShell Core-modulelocaties bevat, overneemt van het bovenliggende proces.

Als tijdelijke oplossing kunt u de knop van de agent instellen AZP_AGENT_CLEANUP_PSMODULES_IN_POWERSHELL op true in de pijplijn. Hierdoor kan de agent PSModulePath opnieuw instellen 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 instellen als dat nodig is in uw PowerShell Core-venster voordat u de agent uitvoert.

Een keer 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 dienst

Als u de agent zo hebt geconfigureerd dat deze wordt uitgevoerd als een service, wordt deze automatisch gestart. U kunt de status van de actieve agent bekijken en beheren vanuit de services-snap-in. Voer services.msc uit en zoek een van de volgende:

  • "Azure Pipelines Agent (naam van uw agent)"
  • "VSTS Agent (naam van uw agent)"
  • "vstsagent. (organisatienaam). (naam van uw agent)"

Notitie

Voor meer flexibiliteit 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 documentatievoor 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 Ybeantwoordt, 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

Verwijder de medewerker:

.\config remove

Nadat u de agent hebt verwijderd, kunt u deze opnieuw configureren.

Onbeheerde configuratie

De agent kan worden ingesteld vanuit een script zonder menselijke tussenkomst. U moet --unattended en de antwoorden op alle vragen overhandigen.

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_. VSTS_AGENT_INPUT_PASSWORD bijvoorbeeld in plaats van --passwordop te geven.

Vereiste opties

  • --unattended - de agentinstallatie zal niet om informatie vragen, en alle instellingen moeten via de opdrachtregel worden opgegeven.
  • --url <url> - URL van de server. Bijvoorbeeld: https://dev.azure.com/myorganization of http://my-azure-devops-server:8080/tfs
  • --auth <type> - authenticatietype. Geldige waarden zijn:
    • pat (persoonlijk toegangstoken)
    • SP (Service Principal) (vereist agent versie 3.227.1 of hoger)
    • negotiate (Kerberos of NTLM)
    • alt (basisverificatie)
    • integrated (Standaardreferenties voor Windows)

Verificatieopties

  • Als u --auth pathebt gekozen:
    • --token <token> - geeft uw persoonlijke toegangstoken op
    • U kunt ook een OAuth 2.0-token doorgeven als de parameter --token.
  • Als u --auth negotiate of --auth althebt gekozen:
    • --userName <userName> - geeft een Windows-gebruikersnaam in de indeling domain\userName of userName@domain.com
    • --password <password> - hiermee geeft u een wachtwoord op
  • Als u --auth SPhebt gekozen:
    • --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 op
    • Zie Een agent registreren met behulp van een service-principal voor meer informatie

Namen van pools en agents

  • --pool <pool> - naam van de pool waaraan de agent moet deelnemen
  • --agent <agent> - agentnaam
  • --replace : vervang de agent uit een pool. Als een andere agent met dezelfde naam luistert, kan het mislukken vanwege een conflict.

Agent instellen

  • --work <workDirectory> - werkmap waarin taakgegevens worden opgeslagen. De standaardinstelling is _work onder de hoofdmap van de agent-directory. De werkmap is eigendom van een bepaalde agent en mag niet worden gedeeld tussen meerdere agents.
  • --acceptTeeEula - accepteer de eindgebruikerslicentieovereenkomst van Team Explorer Everywhere (alleen macOS en Linux)
  • --disableloguploads - verzend of stream de consoleloguitvoer 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 indeling domain\userName of userName@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 samen met --runAsService gebruikt om de agent te configureren met het service-SID-type SERVICE_SID_TYPE_UNRESTRICTED (hiervoor is beheerdersmachtiging vereist)
  • --overwriteAutoLogon - gebruikt samen met --runAsAutoLogon om het bestaande automatische aanmeldproces 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 draait na opnieuw opstart van de computer.

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 een 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 u Registry Editor opnieuw en controleert u of de VSTSAgent sleutel is verschenen. 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> - in combinatie met --deploymentGroup gebruikt om de implementatiegroep op te geven waar de agent zich bij moet aansluiten
  • --projectName <name> - wordt samen met --deploymentGroup gebruikt om de projectnaam in te stellen
  • --addDeploymentGroupTags - gebruikt met --deploymentGroup om aan te geven dat tags voor implementatiegroepen moeten worden toegevoegd
  • --deploymentGroupTags <tags> - wordt gebruikt met --addDeploymentGroupTags om de lijst met tags voor de implementatiegroepagent op te geven, gescheiden door komma's, bijvoorbeeld 'web, db'

Enkel omgevingen

  • --addvirtualmachineresourcetags: wordt gebruikt om aan te geven dat resourcetags voor de omgeving moeten worden toegevoegd
  • --virtualmachineresourcetags <tags> - gebruikt met --addvirtualmachineresourcetags om 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-gehoste agent, kunt u proberen diagnostiek 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 extra 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

Hulp bij andere opties

Voor meer informatie over andere opties:

.\config --help

De Help biedt informatie over verificatiealternatieven en configuratie zonder toezicht.

Capaciteiten

De mogelijkheden van uw agent worden gecatalogeerd en aangekondigd in de pool, zodat alleen de builds en releases die het kan verwerken, eraan 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 op uw agents dezelfde software en tooling installeren die u ook op uw ontwikkelcomputer gebruikt.

Als uw build bijvoorbeeld de npm-taakbevat, wordt de build niet uitgevoerd tenzij er een buildagent is in de pool 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 draait, moet de agent opnieuw worden opgestart om de nieuwe waarden te verwerken. 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 in te stellen VSO_AGENT_IGNORE 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.

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?

  1. Ga naar het tabblad Agentpools :

    1. Meld u aan bij uw organisatie (https://dev.azure.com/{yourorganization}).

    2. Kies Azure DevOps, organisatie-instellingen.

      Organisatie-instellingen kiezen.

    3. Kies Agentpools.

      Kies het tabblad Agentpools.

    1. Meld u aan bij uw projectverzameling (http://your-server/DefaultCollection).

    2. Kies Azure DevOps, Verzamelingsinstellingen.

      Kies Verzamelingsinstellingen.

    3. Kies Agentpools.

      Agentpools kiezen.

  2. Klik op de pool die de agent bevat.

  3. Zorg ervoor dat de agent is ingeschakeld.

  4. Ga naar het tabblad Mogelijkheden:

    1. Selecteer op het tabblad Agentpools de gewenste agentpool.

      In de agentpools selecteert u de gewenste agentpool.

    2. Selecteer Agents en kies de gewenste agent.

      Selecteer Agenten en kies de agent.

    3. Kies het tabblad Mogelijkheden .

      Kies het tabblad Mogelijkheden.

      Notitie

      Door Microsoft gehoste agents geven geen systeemmogelijkheden weer. Zie Een door Microsoft gehoste agent gebruikenvoor een lijst met software die is geïnstalleerd op door Microsoft gehoste agents.

    1. Selecteer op het tabblad Agentpools de gewenste pool.

      Selecteer de gewenste groep.

    2. Selecteer Agents en kies de gewenste agent.

      Selecteer Agents en kies de gewenste agent.

    3. Kies het tabblad Mogelijkheden .

      Tabblad agentmogelijkheden.

  5. Zoek naar de Agent.Version functie. 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.

  6. 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.

  1. Gebruik een computer met internettoegang om de meest recente versie van de agent-pakketbestanden (in .zip- of .tar.gz-vorm) te downloaden van de Azure Pipelines Agent GitHub Releases-pagina.

  2. 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 aan als deze niet aanwezig is.

  1. Je bent klaar! 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 gebruikmaken van het {organization_name}.visualstudio.com-domein
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 gebruikmaken van het {organization_name}.visualstudio.com-domein
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 gebruikmaken van het {organization_name}.visualstudio.com-domein
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-artifacten via een CDN
https://*.vsblob.visualstudio.com Azure DevOps-telemetrie voor organisaties die gebruikmaken van het dev.azure.com-domein
https://*.vssps.visualstudio.com Azure DevOps Platform Services voor organisaties die gebruikmaken van het dev.azure.com-domein
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 en *dev.azure.com geopend zijn en uw toegestane IP-adressen zo bijwerken dat deze de volgende IP-adressen bevatten, op basis van uw IP-versie. Als u momenteel het allow-listen van de 13.107.6.183 en 13.107.9.183 IP-adressen doet, 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 voer ik de agent uit met een zelfondertekend certificaat?

Notitie

Het uitvoeren van de agent met een zelfondertekend certificaat is alleen van toepassing op Azure DevOps Server.

Agent uitvoeren met een zelfondertekend certificaat

Hoe laat ik de agent draaien via een webproxy?

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 Interactief uitvoeren. Als u de agent als een service uitvoert, start u de agent opnieuw door de stappen in Uitvoeren als een servicete volgen.

Hoe stel ik verschillende omgevingsvariabelen in 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 en *dev.azure.com geopend zijn en uw toegestane IP-adressen zo bijwerken dat deze de volgende IP-adressen bevatten, op basis van uw IP-versie. Als u momenteel het allow-listen van de 13.107.6.183 en 13.107.9.183 IP-adressen doet, 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 deze het omzeilen van de URL naar de server ondersteunt waarop de NuGet-feed die u gebruikt wordt gehost.

Ik gebruik TFS en de URL's in de bovenstaande secties werken niet voor mij. Waar kan ik hulp krijgen?

Website-instellingen en -beveiliging

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 betekent het inschakelen van SERVICE_SID_TYPE_UNRESTRICTED 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)

In eerdere versies van de agentsoftware wordt het type servicebeveiligings-id ingesteld op SERVICE_SID_TYPE_NONE. Dit is de standaardwaarde voor de huidige agentversies. Druk op Yom het beveiligingsdienst-identificatortype in te stellen op SERVICE_SID_TYPE_UNRESTRICTED.

Zie SERVICE_SID_INFO structuur en Beveiligings-id'svoor meer informatie.