Agenter i Azure-pipelines

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Om du vill skapa din kod eller distribuera din programvara med Hjälp av Azure Pipelines behöver du minst en agent. När du lägger till mer kod och personer behöver du så småningom mer.

När pipelinen körs börjar systemet ett eller flera jobb. En agent är databehandlingsinfrastruktur med installerad agentprogramvara som kör ett jobb i taget.

Azure Pipelines innehåller flera olika typer av agenter.

Agenttyp beskrivning Tillgänglighet
Microsofts värdbaserade agenter Agenter som hanteras och hanteras av Microsoft Azure DevOps Services
Lokala agenter Agenter som du konfigurerar och hanterar, som finns på dina virtuella datorer Azure DevOps Services, Azure DevOps Server
Skalningsuppsättningsagenter för virtuella Azure-datorer En form av lokalt installerade agenter som använder Skalningsuppsättningar för virtuella Azure-datorer som kan skalas automatiskt för att uppfylla kraven Azure DevOps Services

Microsofts värdbaserade agenter

Om dina pipelines finns i Azure Pipelines har du ett praktiskt alternativ för att köra dina jobb med hjälp av en Microsoft-värdbaserad agent. Med Microsoft-värdbaserade agenter slipper du själv genomföra underhåll och uppgraderingar. Du får alltid den senaste versionen av den virtuella datoravbildningen som du anger i din pipeline. Varje gång du kör en pipeline får du en ny virtuell dator för varje jobb i pipelinen. Den virtuella datorn tas bort efter ett jobb (vilket innebär att alla ändringar som ett jobb gör i filsystemet för den virtuella datorn, till exempel att checka ut kod, inte är tillgängliga för nästa jobb). Microsoft-värdbaserade agenter kan köra jobb direkt på den virtuella datorn eller i en container.

Azure Pipelines tillhandahåller en fördefinierad agentpool med namnet Azure Pipelines med Microsoft-värdbaserade agenter.

För många team är det här det enklaste sättet att köra dina jobb. Du kan prova det först och se om det fungerar för din version eller distribution. Annars kan du använda skalningsuppsättningsagenter eller en lokalt installerad agent.

Dricks

Du kan prova en Microsoft-värdbaserad agent utan kostnad.

Läs mer om Microsoft-värdbaserade agenter.

Lokala agenter

En agent som du konfigurerar och hanterar på egen hand för att köra jobb är en lokalt installerad agent. Du kan använda lokalt installerade agenter i Azure Pipelines eller Azure DevOps Server, tidigare kallad Team Foundation Server (TFS). Lokalt installerade agenter ger dig mer kontroll över installationen av beroende programvara som behövs för dina byggen och distributioner. Cacheminnen på datornivå och konfiguration finns kvar från körning till körning, vilket kan öka hastigheten.

Kommentar

Även om flera agenter kan installeras per dator rekommenderar vi starkt att du bara installerar en agent per dator. Att installera två eller flera agenter kan påverka prestanda och resultatet av dina pipelines negativt.

Dricks

Innan du installerar en lokalt installerad agent kanske du vill se om en Microsoft-värdbaserad agentpool fungerar åt dig. I många fall är detta det enklaste sättet att komma igång. Ge det ett försök.

Du kan installera agenten på Linux-, macOS- eller Windows-datorer. Du kan också installera en agent på en Docker-container. Mer information om hur du installerar en lokalt installerad agent finns i:

Kommentar

På macOS måste du rensa det särskilda attributet i nedladdningsarkivet för att förhindra att Gatekeeper-skyddet visas för varje sammansättning i tar-filen när ./config.sh den körs. Följande kommando rensar det utökade attributet för filen:

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

När du har installerat agenten på en dator kan du installera all annan programvara som krävs för dina jobb på datorn.

Kommentar

Agenter är mycket bakåtkompatibla. Alla versioner av agenten ska vara kompatibla med valfri Azure DevOps-version så länge Azure DevOps inte kräver en högre version av agenten.

Vi stöder bara den senaste versionen av agenten eftersom det är den enda versionen som garanterat har alla uppdaterade korrigeringar och felkorrigeringar.

Node runner-versioner

Agenten levereras med flera versioner av NodeJS-bibliotek för att stödja måluppgifter som använder olika Nodhanterare.

Alla officiella Azure DevOps-uppgifter använder Node 10 som universell hanterare, men kunder kan fortfarande använda anpassade uppgifter som använder det inaktuella Node 6-biblioteket. För att stödja bakåtkompatibilitet med Node som för närvarande har nått End-of-Life tillhandahåller vi följande självbetjäningsmetoder för att installera den avsedda Node-löparen manuellt.

  • Installera Node 6-löparen manuellt. Mer information om hur du installerar Node 6-löparen manuellt finns i Stöd för Nod 6 för mer information.

  • Använd den NodeTaskRunnerInstaller@0 uppgiften i dina pipelines som kräver det inaktuella Node 6-biblioteket.

  • Installera ett agentpaket som innehåller Nod 6.

    Azure Pipelines innehåller två versioner av agentpaket.

    • vsts-agent-* paket stöder Node 6.
    • pipelines-agent-* paket stöder inte Node 6. Den här versionen av paketet blir standardagentpaketet i framtiden.

    Om du vet att du inte använder några nod 6-beroende uppgifter och du inte vill att Node 6 ska installeras på agentdatorn kan du installera agenten från avsnittet Alternativa agentnedladdningar från https://github.com/microsoft/azure-pipelines-agent/releases.

Skalningsuppsättningsagenter för virtuella Azure-datorer

Azure Virtual Machine Scale Set-agenter är en form av lokalt installerade agenter som kan skalas automatiskt för att uppfylla dina krav. Den här elasticiteten minskar behovet av att köra dedikerade agenter hela tiden. Till skillnad från Microsoft-hostade agenter har du möjlighet att bestämma storleken på och bilden av de datorer som agenterna körs på.

Du anger en VM-skalningsuppsättning, ett antal agenter som ska hållas i vänteläge, ett maximalt antal virtuella datorer i skalningsuppsättningen och Azure Pipelines hanterar skalningen av dina agenter åt dig.

Mer information finns i Azure Virtual Machine Scale Set-agenter.

Parallella jobb

Parallella jobb representerar antalet jobb som du kan köra samtidigt i din organisation. Om din organisation har ett enda parallellt jobb kan du köra ett enda jobb i taget i din organisation, med ytterligare samtidiga jobb i kö tills det första jobbet har slutförts. Om du vill köra två jobb samtidigt behöver du två parallella jobb. I Azure Pipelines kan du köra parallella jobb i Microsoft-värdbaserad infrastruktur eller på egen (lokalt installerad) infrastruktur.

Microsoft tillhandahåller som standard en kostnadsfri tjänstnivå i varje organisation som innehåller minst ett parallellt jobb. Beroende på antalet samtidiga pipelines som du behöver köra kan du behöva fler parallella jobb för att använda flera Microsoft-värdbaserade eller lokalt installerade agenter samtidigt. Mer information om parallella jobb och olika kostnadsfria tjänstnivåer finns i Parallella jobb i Azure Pipelines.

Du kan behöva fler parallella jobb för att använda flera agenter samtidigt:

Viktigt!

Från och med Azure DevOps Server 2019 behöver du inte betala för samtidiga jobb med egen värd i versioner. Du begränsas bara av antalet agenter som du har.

Funktioner

Varje lokalt installerad agent har en uppsättning funktioner som anger vad den kan göra. Funktioner är namn/värde-par som antingen identifieras automatiskt av agentprogramvaran, i vilket fall de kallas systemfunktioner eller de som du definierar, i vilket fall de kallas användarfunktioner.

Agentprogramvaran avgör automatiskt olika systemfunktioner, till exempel datorns namn, typ av operativsystem och versioner av viss programvara som är installerad på datorn. Miljövariabler som definierats på datorn visas också automatiskt i listan över systemfunktioner.

Kommentar

Lagring av miljövariabler som funktioner innebär att när en agent körs används de lagrade kapacitetsvärdena för att ange miljövariablerna. Ändringar i miljövariabler som görs medan agenten körs hämtas inte och används inte av någon uppgift. Om du har känsliga miljövariabler som ändras och du inte vill att de ska lagras som funktioner kan du låta dem ignoreras genom att ange VSO_AGENT_IGNORE miljövariabeln, med en kommaavgränsad lista med variabler att ignorera. Är till exempel PATH en kritisk variabel som du kanske vill ignorera om du installerar programvara.

När du skapar en pipeline anger du vissa krav för agenten. Systemet skickar jobbet endast till agenter som har funktioner som matchar de krav som anges i pipelinen. Därför kan du med agentfunktioner dirigera jobb till specifika agenter.

Kommentar

Krav och funktioner är utformade för användning med lokalt installerade agenter så att jobb kan matchas med en agent som uppfyller kraven för jobbet. När du använder Microsoft-värdbaserade agenter väljer du en avbildning för agenten som matchar kraven för jobbet, så även om det är möjligt att lägga till funktioner i en Microsoft-värdbaserad agent behöver du inte använda funktioner med Microsoft-värdbaserade agenter.

Konfigurera krav

Lägg till raden i demands: avsnittet om du vill lägga till ett krav i yaml-bygg-pipelinen pool .

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

Du kan kontrollera om det finns en funktion eller göra en jämförelse med värdet för en funktion. Mer information finns i YAML-schema – Krav.

Konfigurera agentfunktioner

Du kan visa information om en agent, inklusive dess version och systemfunktioner, och hantera dess användarfunktioner genom att gå till Agentpooler och välja fliken Funktioner för den önskade agenten.

  1. I webbläsaren går du till Agentpooler:

    1. Logga in på din organisation (https://dev.azure.com/{yourorganization}).

    2. Välj Azure DevOps, Organisationsinställningar.

      Välj Organisationsinställningar.

    3. Välj Agentpooler.

      Välj fliken Agentpooler.

    1. Logga in på din projektsamling (http://your-server/DefaultCollection).

    2. Välj Azure DevOps, samlingsinställningar.

      Välj Samlingsinställningar.

    3. Välj Agentpooler.

      Välj Agentpooler.

    1. Välj Azure DevOps, samlingsinställningar.

      Samlingsinställningar, 2019.

    2. Välj Agentpooler.

      Välj Agentpooler, 2019.

  2. Gå till fliken Funktioner:

    1. På fliken Agentpooler väljer du önskad agentpool.

      Välj önskad agentpool från Agentpooler.

    2. Välj Agenter och välj önskad agent.

      Välj Agenter och välj agenten.

    3. Välj fliken Funktioner .

      Välj fliken Funktioner.

      Kommentar

      Microsoft-värdbaserade agenter visar inte systemfunktioner. En lista över programvara som är installerad på Microsoft-värdbaserade agenter finns i Använda en Microsoft-värdbaserad agent.

    1. Välj önskad pool på fliken Agentpooler .

      Välj önskad pool.

    2. Välj Agenter och välj önskad agent.

      Välj Agenter och välj önskad agent.

    3. Välj fliken Funktioner .

      Fliken Agentfunktioner.

    1. Välj önskad pool på fliken Agentpooler .

      Välj önskad flik, 2019.

    2. Välj Agenter och välj önskad agent.

      Välj önskad agent, 2019.

    3. Välj fliken Funktioner .

      Välj fliken Funktioner, 2019.

  3. Om du vill registrera en ny funktion med agenten väljer du Lägg till en ny funktion.

Dricks

När du har installerat ny programvara på en lokalt installerad agent måste du starta om agenten för att den nya funktionen ska visas. Mer information finns i Starta om Windows-agenten, Starta om Linux-agenten och Starta om Mac-agenten.

Kommunikation

Kommunikation med Azure Pipelines

Kommunikation med Azure DevOps Server

Agenten kommunicerar med Azure Pipelines eller Azure DevOps Server för att avgöra vilket jobb som ska köras och för att rapportera loggar och jobbstatus. Den här kommunikationen initieras alltid av agenten. Alla meddelanden från agenten till Azure Pipelines eller Azure DevOps Server ske via HTTP eller HTTPS, beroende på agentens konfiguration. Med den här pull-modellen kan agenten konfigureras i olika topologier enligt nedan.

Agenttopologier i lokala installationer.

Agenttopologier i Azure DevOps Services.

Här är ett vanligt kommunikationsmönster mellan agenten och Azure Pipelines eller Azure DevOps Server.

  1. Användaren registrerar en agent med Azure Pipelines eller Azure DevOps Server genom att lägga till den i en agentpool. Du måste vara administratör för agentpoolen för att kunna registrera en agent i agentpoolen. Identiteten för administratören av agentpoolen behövs endast vid registreringstillfället och lagras inte i agenten och används inte heller i någon ytterligare kommunikation mellan agenten och Azure Pipelines eller Azure DevOps Server. När registreringen är klar laddar agenten ned en OAuth-lyssnartoken och använder den för att lyssna på jobbkön.

  2. Agenten lyssnar för att se om en ny jobbegäran har publicerats för den i jobbkön i Azure Pipelines/Azure DevOps Server med hjälp av en lång HTTP-poll. När ett jobb är tillgängligt laddar agenten ned jobbet samt en jobbspecifik OAuth-token. Den här token genereras av Azure Pipelines/Azure DevOps Server för den omfångsbegränsade identitet som anges i pipelinen. Denna token är kortvarig och används av agenten för att komma åt resurser (till exempel källkod) eller ändra resurser (till exempel ladda upp testresultat) på Azure Pipelines eller Azure DevOps Server i jobbet.

  3. När jobbet är slutfört gör agenten sig av med den jobbspecifika OAuth-token och återgår till att kontrollera om det finns en ny jobbegäran med hjälp av lyssnarens OAuth-token.

Nyttolasten i de meddelanden som utbyts mellan agenten och Azure Pipelines/Azure DevOps Server säkras med asymmetrisk kryptering. Varje agent har ett offentligt-privat nyckelpar och den offentliga nyckeln utbyts med servern under registreringen. Servern använder den offentliga nyckeln för att kryptera nyttolasten för jobbet innan den skickas till agenten. Agenten dekrypterar jobbinnehållet med hjälp av den privata nyckeln. På så sätt säkras hemligheter som lagras i pipelines eller variabelgrupper när de utbyts med agenten.

Kommentar

Agenten har stöd för UTF-8-klientkodningsutdata. Men om systemet har en annan kodning än UTF-8 kan det uppstå vissa problem med utdata från loggar. Loggarna kan till exempel innehålla tecken som inte känns igen av systemets kodning så att de kan visas som förvrängda eller saknade symboler.

Kommunikation för distribution till målservrar

När du använder agenten för att distribuera artefakter till en uppsättning servrar måste den ha "synlig" anslutning till dessa servrar. Microsofts värdbaserade agentpooler har som standard anslutning till Azure-webbplatser och -servrar som körs i Azure.

Kommentar

Om dina Azure-resurser körs i ett virtuellt Azure-nätverk kan du hämta agent-IP-intervallen där Microsoft-värdbaserade agenter distribueras så att du kan konfigurera brandväggsreglerna för ditt virtuella Azure-nätverk så att agenten tillåter åtkomst.

Om dina lokala miljöer inte har någon anslutning till en Microsoft-värdbaserad agentpool (vilket vanligtvis är fallet på grund av mellanliggande brandväggar) måste du manuellt konfigurera en lokalt installerad agent på lokala datorer. Agenterna måste ha anslutning till lokala målmiljöer och åtkomst till Internet för att ansluta till Azure Pipelines eller Team Foundation Server, enligt följande schema.

Agentanslutning för lokala miljöer

Autentisering

Om du vill registrera en agent måste du vara medlem i administratörsrollen i agentpoolen. Identiteten för administratören av agentpoolen behövs endast vid registreringstillfället och lagras inte i agenten och används inte i någon efterföljande kommunikation mellan agenten och Azure Pipelines eller Azure DevOps Server. Dessutom måste du vara lokal administratör på servern för att kunna konfigurera agenten.

När du registrerar en agent väljer du mellan följande autentiseringstyper, och agentkonfigurationen uppmanar dig att ange den specifika ytterligare information som krävs för varje autentiseringstyp. Mer information finns i autentiseringsalternativ för lokalt installerad agent.

  • Personlig åtkomsttoken
  • Alternativa Anslut till Azure DevOps Server eller TFS med grundläggande autentisering. När du väljer Alternativ uppmanas du att ange dina autentiseringsuppgifter.

Windows-agenter har följande två ytterligare autentiseringsalternativ på Azure DevOps Server.

  • Förhandla om Anslut till Azure DevOps Server som en annan användare än den inloggade användaren via ett Windows-autentiseringsschema som NTLM eller Kerberos. När du har valt Förhandla uppmanas du att ange autentiseringsuppgifter.
  • Integrerad (standard) Anslut en Windows-agent till Azure DevOps Server med autentiseringsuppgifterna för den inloggade användaren via ett Windows-autentiseringsschema som NTLM eller Kerberos. Du uppmanas inte att ange autentiseringsuppgifter när du har valt den här metoden.

Viktigt!

Servern måste vara konfigurerad för att stödja autentiseringsmetoden för att använda alternativ, förhandla eller integrerad autentisering.

Autentiseringsmetoden som används för att registrera agenten används endast under agentregistreringen. Mer information om hur agenter kommunicerar med Azure Pipelines efter registreringen finns i Kommunikation med Azure Pipelines eller Azure DevOps Server.

Interaktiv vs tjänst

Du kan köra din lokalt installerade agent som antingen en tjänst eller en interaktiv process. När du har konfigurerat agenten rekommenderar vi att du först provar den i interaktivt läge för att kontrollera att den fungerar. För produktionsanvändning rekommenderar vi sedan att du kör agenten i något av de följande lägena så att den på ett tillförlitligt sätt förblir i ett körningstillstånd. Dessa lägen ser också till att agenten startas automatiskt om datorn startas om.

  1. Som en tjänst. Du kan utnyttja operativsystemets tjänsthanterare för att hantera agentens livscykel. Dessutom är upplevelsen av automatisk uppgradering av agenten bättre när den körs som en tjänst.

  2. Som en interaktiv process med automatisk inloggning aktiverad. I vissa fall kan du behöva köra agenten interaktivt för produktionsanvändning, till exempel för att köra tester för användargränssnitt. När agenten är konfigurerad för att köras i det här läget inaktiveras även skärmsläckaren. Vissa domänprinciper kan hindra dig från att aktivera automatisk inloggning eller inaktivera skärmsläckaren. I sådana fall kan du behöva söka ett undantag från domänprincipen eller köra agenten på en arbetsgruppsdator där domänprinciperna inte gäller.

    Kommentar

    Det finns säkerhetsrisker när du aktiverar automatisk inloggning eller inaktiverar skärmsläckaren eftersom du gör det möjligt för andra användare att gå upp till datorn och använda det konto som automatiskt loggar in. Om du konfigurerar agenten så att den körs på det här sättet måste du se till att datorn är fysiskt skyddad. finns till exempel i en säker anläggning. Om du använder Fjärrskrivbord för att få åtkomst till den dator där en agent körs med automatisk inloggning kan det hända att datorn låses när fjärrskrivbordet stängs och alla användargränssnittstester som körs på den här agenten misslyckas. Undvik detta genom att använda tscon-kommandot för att koppla från Fjärrskrivbord. Till exempel:

    %windir%\System32\tscon.exe 1 /dest:console

Agentkonto

Oavsett om du kör en agent som en tjänst eller interaktivt kan du välja vilket datorkonto du använder för att köra agenten. (Observera att detta skiljer sig från de autentiseringsuppgifter som du använder när du registrerar agenten med Azure Pipelines eller Azure DevOps Server.) Valet av agentkonto beror enbart på behoven för de uppgifter som körs i dina bygg- och distributionsjobb.

Om du till exempel vill köra uppgifter som använder Windows-autentisering för att få åtkomst till en extern tjänst måste du köra agenten med ett konto som har åtkomst till den tjänsten. Men om du kör användargränssnittstester som Selenium- eller Coded UI-tester som kräver en webbläsare, startas webbläsaren i kontexten för agentkontot.

I Windows bör du överväga att använda ett tjänstkonto, till exempel nätverkstjänst eller lokal tjänst. Dessa konton har begränsade behörigheter och deras lösenord upphör inte att gälla, vilket innebär att agenten kräver mindre hantering över tid.

Agentversion och uppgraderingar

Vi uppdaterar agentprogramvaran med några veckors mellanrum i Azure Pipelines. Vi anger agentversionen i formatet {major}.{minor}. Om agentversionen till exempel är 2.1är huvudversionen 2 och delversionen är 1.

Microsoft-värdbaserade agenter hålls alltid uppdaterade. Om den nyare versionen av agenten bara skiljer sig i delversion kan lokalt installerade agenter vanligtvis uppdateras automatiskt (konfigurera den här inställningen i Agentpooler, välj din agent Inställningar – standardinställningen är aktiverad) av Azure Pipelines. En uppgradering begärs när en plattformsfunktion eller någon av de uppgifter som används i pipelinen kräver en nyare version av agenten.

Om du kör en lokalt installerad agent interaktivt, eller om det finns en nyare huvudversion av agenten tillgänglig, kan du behöva uppgradera agenterna manuellt. Du kan enkelt göra detta från fliken Agentpooler under din organisation. Dina pipelines körs inte förrän de kan rikta in sig på en kompatibel agent.

Så här uppdaterar du lokalt installerade agenter

  1. Gå till Projektinställningar, Agentpooler.

    Projektinställningar, Agentpooler

  2. Välj din agentpool och välj Uppdatera alla agenter.

    Uppdatera alla agenter

    Du kan också uppdatera agenter individuellt genom att välja Uppdatera agent från menyn ... .

    Uppdatera agent

  3. Bekräfta uppdateringen genom att välja Uppdatera .

    Uppdatera alla agentbekräftelser

  4. En uppdateringsbegäran placeras i kö för varje agent i poolen och körs när alla jobb som körs slutförs. Uppgraderingen tar vanligtvis bara en stund – tillräckligt lång tid för att ladda ned den senaste versionen av agentprogramvaran (cirka 200 MB), packa upp den och starta om agenten med den nya versionen. Du kan övervaka statusen för dina agenter på fliken Agenter .

Vi uppdaterar agentprogramvaran med varje uppdatering i Azure DevOps Server. Vi anger agentversionen i formatet {major}.{minor}. Om agentversionen till exempel är 2.1är huvudversionen 2 och delversionen är 1.

När din Azure DevOps Server har en nyare version av agenten och den nyare agenten bara skiljer sig i delversion kan den vanligtvis uppgraderas automatiskt. En uppgradering begärs när en plattformsfunktion eller någon av de uppgifter som används i pipelinen kräver en nyare version av agenten. Från och med Azure DevOps Server 2019 behöver du inte vänta på en ny serverversion. Du kan ladda upp en ny version av agenten till programnivån och den versionen erbjuds som en uppgradering.

Om du kör agenten interaktivt, eller om det finns en nyare huvudversion av agenten tillgänglig, kan du behöva uppgradera agenterna manuellt. Du kan enkelt göra detta från fliken Agentpooler under din projektsamling. Dina pipelines körs inte förrän de kan rikta in sig på en kompatibel agent.

Du kan visa versionen av en agent genom att gå till Agentpooler och välja fliken Funktioner för önskad agent enligt beskrivningen i Konfigurera agentfunktioner.

Om du vill utlösa agentuppdatering programmatiskt kan du använda API för agentuppdatering enligt beskrivningen i avsnittet Hur utlöser jag agentuppdateringar programmatiskt för en specifik agentpool?.

Kommentar

För servrar utan internetåtkomst kopierar du manuellt zip-filen agent till följande mapp som ska användas som en lokal fil. Skapa mappen Agenter om den inte finns.

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • Macos: usr/share/Microsoft/Azure DevOps/Agents

Skapa mappen Agenter om den inte finns.

Vanliga frågor

Hur gör jag för att kontrollera att jag har den senaste v2-agentversionen?

  1. Gå till fliken Agentpooler :

    1. Logga in på din organisation (https://dev.azure.com/{yourorganization}).

    2. Välj Azure DevOps, Organisationsinställningar.

      Välj Organisationsinställningar.

    3. Välj Agentpooler.

      Välj fliken Agentpooler.

    1. Logga in på din projektsamling (http://your-server/DefaultCollection).

    2. Välj Azure DevOps, samlingsinställningar.

      Välj Samlingsinställningar.

    3. Välj Agentpooler.

      Välj Agentpooler.

    1. Välj Azure DevOps, samlingsinställningar.

      Samlingsinställningar, 2019.

    2. Välj Agentpooler.

      Välj Agentpooler, 2019.

  2. Klicka på poolen som innehåller agenten.

  3. Kontrollera att agenten är aktiverad.

  4. Gå till fliken Funktioner:

    1. På fliken Agentpooler väljer du önskad agentpool.

      Välj önskad agentpool från Agentpooler.

    2. Välj Agenter och välj önskad agent.

      Välj Agenter och välj agenten.

    3. Välj fliken Funktioner .

      Välj fliken Funktioner.

      Kommentar

      Microsoft-värdbaserade agenter visar inte systemfunktioner. En lista över programvara som är installerad på Microsoft-värdbaserade agenter finns i Använda en Microsoft-värdbaserad agent.

    1. Välj önskad pool på fliken Agentpooler .

      Välj önskad pool.

    2. Välj Agenter och välj önskad agent.

      Välj Agenter och välj önskad agent.

    3. Välj fliken Funktioner .

      Fliken Agentfunktioner.

    1. Välj önskad pool på fliken Agentpooler .

      Välj önskad flik, 2019.

    2. Välj Agenter och välj önskad agent.

      Välj önskad agent, 2019.

    3. Välj fliken Funktioner .

      Välj fliken Funktioner, 2019.

  5. Leta efter funktionen Agent.Version . Du kan kontrollera det här värdet mot den senaste publicerade agentversionen. Se Azure Pipelines-agenten och kontrollera sidan för det högsta versionsnumret i listan.

  6. Varje agent uppdateras automatiskt när den kör en uppgift som kräver en nyare version av agenten. Om du vill uppdatera vissa agenter manuellt högerklickar du på poolen och väljer Uppdatera alla agenter.

Kan jag uppdatera mina v2-agenter som ingår i en Azure DevOps Server-pool?

Ja. Från och med Azure DevOps Server 2019 kan du konfigurera servern så att den söker efter agentpaketfilerna på en lokal disk. Den här konfigurationen åsidosätter standardversionen som medföljer servern när den släpptes. Det här scenariot gäller även när servern inte har åtkomst till Internet.

  1. Från en dator med Internetåtkomst laddar du ned den senaste versionen av agentpaketfilerna (i .zip eller .tar.gz formulär) från sidan Azure Pipelines Agent GitHub Releases.

  2. Överför de nedladdade paketfilerna till varje Azure DevOps Server-programnivå med hjälp av valfri metod (till exempel USB-enhet, nätverksöverföring och så vidare). Placera agentfilerna %ProgramData%\Microsoft\Azure DevOps\Agents under mappen. Skapa mappen Agenter om den inte finns.

  3. Nu är det klart! Azure DevOps Server använder nu de lokala filerna när agenterna uppdateras. Varje agent uppdateras automatiskt när den kör en uppgift som kräver en nyare version av agenten. Men om du vill uppdatera vissa agenter manuellt högerklickar du på poolen och väljer sedan Uppdatera alla agenter.

Har lokalt installerade agenter några prestandafördelar jämfört med Microsoft-värdbaserade agenter?

Ja, i många fall. Specifikt:

  • Om du använder en lokalt installerad agent kan du köra inkrementella versioner. Om du till exempel definierar en pipeline som inte rensar lagringsplatsen och inte utför en ren version, körs dina versioner vanligtvis snabbare. När du använder en Microsoft-värdbaserad agent får du inte dessa fördelar (såvida du inte använder funktioner som cachelagring) eftersom agenten förstörs när bygg- eller versionspipelinen har slutförts.

  • Det kan ta längre tid att starta bygget av en Microsoft-värdbaserad agent. Det tar ofta bara några sekunder för jobbet att tilldelas till en Microsoft-värdbaserad agent, men det kan ibland ta flera minuter innan en agent allokeras beroende på belastningen på vårt system.

Kan jag installera flera lokalt installerade agenter på samma dator?

Ja. Den här metoden kan fungera bra för agenter som kör jobb som inte förbrukar många delade resurser. Du kan till exempel prova det för agenter som kör versioner som främst samordnar distributioner och inte utför mycket arbete på själva agenten.

Du kanske upptäcker att du i andra fall inte får mycket effektivitet genom att köra flera agenter på samma dator. Det kanske till exempel inte är värt något för agenter som kör versioner som förbrukar mycket disk- och I/O-resurser.

Du kan också stöta på problem om parallella byggjobb använder samma singleton-verktygsdistribution, till exempel npm-paket. En version kan till exempel uppdatera ett beroende medan en annan version är mitt uppe i att använda den, vilket kan orsaka otillförlitliga resultat och fel.

Vad är beteendet för agenter när pipelinejobben avbryts?

För Microsoft-värdbaserade agenter rivs agenten ner och returneras till Azure Pipelines-poolen.

För internt testade agenter:

När en pipeline avbryts skickar agenten en sekvens med kommandon till processen som kör det aktuella steget. Det första kommandot skickas med en tidsgräns på 7,5 sekunder. Om processen inte har avslutats skickas ett andra kommando med en tidsgräns på 2,5 sekunder. Om processen inte har avslutats utfärdar agenten ett kommando för att döda processen. Om processen inte uppfyller de två inledande uppsägningsbegäranden kommer den att dödas. Från den första begäran till avslutandet tar cirka 10 sekunder.

De kommandon som utfärdas till processen för att avbryta pipelinen skiljer sig beroende på agentoperativsystemet.

  • macOS och Linux – Kommandona som skickas är SIGINT, följt av SIGTERM, följt av SIGKILL.
  • Windows – Kommandona som skickas till processen är Ctrl+C, följt av Ctrl+Break följt av Process.Kill.

Hur utlöser jag agentuppdateringar programmatiskt för en specifik agentpool?

Du kan utlösa agentuppdateringar för poolen med hjälp av följande 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

Kommentar

Mer information i API- och Azure DevOps Server-versionsmappning finns i API- och Azure DevOps Server-versionsmappning

URI-parametrar

Name I Obligatoriskt Type Beskrivning
agentId query Falsk sträng Agenten som ska uppdateras. Om det inte anges utlöses uppdateringen för alla agenter.
organization path Sant sträng Namnet på Azure DevOps-organisationen.
poolId path Sant heltals-int32 Agentpoolen som ska användas
api-version query Falsk sträng Version av API:et som ska användas. Detta bör anges till "6.0" för att använda den här versionen av API:et.

För att utlösa agentuppdatering – begärandetexten ska vara tom.

Kommentar

Azure Pipelines-agenten är öppen källkod på GitHub.

Läs mer

Mer information om agenter finns i följande moduler från utbildningsvägen Skapa program med Azure DevOps .