Lokalt installerade Linux-agenter (2.x)

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

Viktigt!

Den här artikeln innehåller vägledning om hur du använder 2.x-versionsagentprogramvaran med Azure DevOps Server och TFS. Om du använder Azure DevOps Services kan du läsa mer i Linux-agenter med egen värd.

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

För att kunna köra dina jobb behöver du minst en agent. En Linux-agent kan skapa och distribuera olika typer av appar, inklusive Java- och Android-appar. Vi stöder Ubuntu, Red Hat och CentOS.

Innan du börjar:

  • Om dina pipelines finns i Azure Pipelines och en Microsoft-värdbaserad agent uppfyller dina behov kan du hoppa över att konfigurera en privat Linux-agent.
  • Annars har du kommit till rätt plats för att konfigurera en agent i Linux. Fortsätt till nästa avsnitt.

Lär dig mer om agenter

Om du redan vet vad en agent är och hur den fungerar kan du hoppa direkt till följande avsnitt. Men om du vill ha mer bakgrund om vad de gör och hur de fungerar kan du läsa Azure Pipelines-agenter.

Kontrollera krav

Agenten baseras på .NET Core 3.1. Du kan köra den här agenten på flera Linux-distributioner. Vi stöder följande delmängd av .NET Core-distributioner som stöds:

  • x64
    • CentOS 7, 6 (se not 1)
    • Debian 9
    • Fedora 30, 29
    • Linux Mint 18, 17
    • openSUSE 42.3 eller senare
    • Oracle Linux 8, 7
    • Red Hat Enterprise Linux 8, 7, 6 (se anmärkning 1)
    • SUSE Enterprise Linux 12 SP2 eller senare
    • Ubuntu 20.04, 18.04, 16.04
    • Azure Linux 1.0 (se anmärkning 3)
  • ARM32 (se anmärkning 2)
    • Debian 9
    • Ubuntu 18.04
  • ARM64
    • Debian 9
    • Ubuntu 21.04, 20.04, 18.04

Kommentar

Obs! RHEL 6 och CentOS 6 kräver installation av den specialiserade rhel.6-x64 versionen av agenten.

Viktigt!

Från och med februari 2023 har inga fler agentversioner stöd för RHEL 6. Mer information finns i Kunder som använder Red Hat Enterprise Linux (RHEL) 6 bör uppgradera operativsystemet på lokalt installerade agenter.

Kommentar

Obs! ARM-instruktionsuppsättning ARMv7 eller senare krävs. Kör uname -a för att se instruktionsuppsättningen för Linux-distributionen.

Kommentar

Azure Linux OS-distribution har för närvarande delvis stöd från Azure DevOps-agenten. Vi tillhandahåller en mekanism för identifiering av den här operativsystemets distribution i installdependencies.sh skriptet, men på grund av bristande stöd från .Net Core-sidan kunde vi inte garantera att alla agentfunktioner fungerar fullt ut när de körs på den här operativsystemets distribution.

Oavsett plattform måste du installera Git 2.9.0 eller senare. Vi rekommenderar starkt att du installerar den senaste versionen av Git.

Kommentar

Agentinstallationsprogrammet vet hur man söker efter andra beroenden. Du kan installera dessa beroenden på Linux-plattformar som stöds genom att köra ./bin/installdependencies.sh i agentkatalogen.

Tänk på att vissa av dessa beroenden som krävs av .NET Core hämtas från webbplatser från tredje part, till exempel packages.efficios.com. Granska skriptet installdependencies.sh och se till att alla refererade webbplatser från tredje part är tillgängliga från linux-datorn innan du kör skriptet.

Kontrollera också att alla nödvändiga lagringsplatser är anslutna till den relevanta pakethanteraren som används i installdependencies.sh (till exempel apt eller zypper).

För problem med installation av beroenden (till exempel "beroende hittades inte på lagringsplatsen" eller "problem med att hämta lagringsplatsens indexfil") kan du kontakta distributionsägaren för ytterligare support.

Subversion

Om du skapar från en subversions-lagringsplats måste du installera subversionsklienten på datorn.

Du bör köra agentkonfigurationen manuellt första gången. När du har fått en känsla för hur agenter fungerar, eller om du vill automatisera konfigurationen av många agenter, bör du överväga att använda obevakad konfiguration.

TFVC

Om du ska använda TFVC behöver du även Oracle Java JDK 1.6 eller senare. (Oracle JRE och OpenJDK räcker inte för det här ändamålet.)

PLUGIN-programmet TEE används för TFVC-funktioner. Det har ett serviceavtal som du måste godkänna under konfigurationen om du planerar att arbeta med TFVC.

Eftersom TEE-plugin-programmet inte längre underhålls och innehåller några inaktuella Java-beroenden, från agent 2.198.0 ingår det inte längre i agentdistributionen. Tee-plugin-programmet laddas dock ned under körningen av utcheckningsaktiviteten om du checkar ut en TFVC-lagringsplats. TEE-plugin-programmet tas bort efter jobbkörningen.

Kommentar

Obs! Du kanske märker att din utcheckningsaktivitet tar lång tid att börja arbeta på grund av den här nedladdningsmekanismen.

Om agenten körs bakom en proxy eller en brandvägg måste du säkerställa åtkomst till följande webbplats: https://vstsagenttools.blob.core.windows.net/. TEE-plugin-programmet laddas ned från den här adressen.

Om du använder en lokalt installerad agent och har problem med tee-nedladdning kan du installera TEE manuellt:

  1. Ange DISABLE_TEE_PLUGIN_REMOVAL miljö- eller pipelinevariabel till true. Den här variabeln hindrar agenten från att ta bort PLUGIN-programmet tee efter TFVC-lagringsplatsens utcheckning.
  2. Ladda ned TEE-CLC version 14.135.0 manuellt från Team Explorer Everywhere GitHub-versioner.
  3. Extrahera innehållet i TEE-CLC-14.135.0 mappen till <agent_directory>/externals/tee.

Förbereda behörigheter

Informationssäkerhet för lokalt installerade agenter

Användaren som konfigurerar agenten behöver pooladministratörsbehörigheter, men den användare som kör agenten gör det inte.

Mapparna som styrs av agenten bör begränsas till så få användare som möjligt och de innehåller hemligheter som kan dekrypteras eller exfiltrateras.

Azure Pipelines-agenten är en programvaruprodukt som är utformad för att köra kod som den laddar ned från externa källor. Det kan vara ett mål för RCE-attacker (Remote Code Execution).

Därför är det viktigt att överväga hotmodellen som omger varje enskild användning av Pipelines-agenter för att utföra arbete och bestämma vilka som är de minsta behörigheterna som kan beviljas till den användare som kör agenten, till den dator där agenten körs, till de användare som har skrivåtkomst till pipelinedefinitionen, git-lagringsplatserna där yaml lagras. eller den grupp användare som styr åtkomsten till poolen för nya pipelines.

Det är bästa praxis att låta identiteten som kör agenten skilja sig från identiteten med behörighet att ansluta agenten till poolen. Användaren som genererar autentiseringsuppgifterna (och andra agentrelaterade filer) skiljer sig från den användare som behöver läsa dem. Därför är det säkrare att noggrant överväga åtkomst som beviljats till själva agentdatorn och agentmapparna som innehåller känsliga filer, till exempel loggar och artefakter.

Det är klokt att bevilja åtkomst till agentmappen endast för DevOps-administratörer och användaridentiteten som kör agentprocessen. Administratörer kan behöva undersöka filsystemet för att förstå byggfel eller hämta loggfiler för att kunna rapportera Azure DevOps-fel.

Bestäm vilken användare du ska använda

Som ett engångssteg måste du registrera agenten. Någon med behörighet att administrera agentkön måste slutföra de här stegen. Agenten använder inte den här personens autentiseringsuppgifter varje dag, men de måste slutföra registreringen. Läs mer om hur agenter kommunicerar.

Autentisera med en personlig åtkomsttoken (PAT)

  1. Logga in med det användarkonto som du planerar att använda i Azure DevOps Server-webbportalen (https://{your-server}/DefaultCollection/).
  1. Logga in med det användarkonto som du planerar att använda i din Azure DevOps-organisation (https://dev.azure.com/{your_organization}).
  1. Öppna din profil på startsidan. Gå till säkerhetsinformationen.

    Gå till säkerhetsinformationen.

  2. Skapa en personlig åtkomsttoken.

    Skapa en personlig åtkomsttoken.

    Kommentar

    Om du konfigurerar en distributionsgruppagent, eller om du ser ett fel när du registrerar en vm-miljöresurs, måste du ange PAT-omfånget till Alla tillgängliga organisationer. Skärmbild av hur du ställer in PAT-omfång för alla tillgängliga organisationer.

  1. Öppna användarinställningarna på startsidan och välj sedan Personliga åtkomsttoken.

    Gå till säkerhetsinformationen.

  2. Skapa en personlig åtkomsttoken.

    Skapa en personlig åtkomsttoken.

  1. För omfånget väljer du Agentpooler (läsa, hantera) och kontrollera att alla andra rutor är avmarkerade. Om det är en distributionsgruppsagent väljer du Distributionsgrupp (läs, hantera) för omfånget och kontrollerar att alla andra rutor är avmarkerade.

    Välj Visa alla omfång längst ned i fönstret Skapa en ny personlig åtkomsttoken för att se hela listan med omfång.

  2. Kopiera token. Du använder den här token när du konfigurerar agenten.

Bekräfta att användaren har behörighet

Kontrollera att det användarkonto som du ska använda har behörighet att registrera agenten.

Är användaren en Azure DevOps-organisationsägare eller TFS- eller Azure DevOps Server-administratör? Stanna här, du har behörighet.

Annars:

  1. Öppna en webbläsare och gå till fliken Agentpooler för din Azure Pipelines-organisation eller Azure DevOps Server eller TFS-server:

    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. Välj poolen till höger på sidan och klicka sedan på Säkerhet.

  3. Om det användarkonto som du ska använda inte visas får du en administratör att lägga till det. Administratören kan vara en administratör för agentpoolen, en Azure DevOps-organisationsägare eller en TFS- eller Azure DevOps Server-administratör.

    Om det är en distributionsgruppsagent kan administratören vara administratör för distributionsgruppen, en Azure DevOps-organisationsägare eller en TFS- eller Azure DevOps Server-administratör.

    Du kan lägga till en användare i administratörsrollen för distributionsgruppen på fliken Säkerhetsidan Distributionsgrupper i Azure Pipelines.

Kommentar

Om du ser ett meddelande som det här: Det gick inte att lägga till identiteten. Prova en annan identitet. Du följde förmodligen stegen ovan för en organisationsägare eller TFS- eller Azure DevOps Server-administratör. Du behöver inte göra något; du redan har behörighet att administrera agentkön.

Ladda ned och konfigurera agenten

Azure-pipelines

  1. Logga in på datorn med det konto som du har förberett behörigheter för enligt beskrivningen ovan.

  2. Logga in på Azure Pipelines i webbläsaren och 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.

  3. Välj standardpoolen , välj fliken Agenter och välj Ny agent.

  4. Klicka på Linux i dialogrutan Hämta agenten.

  5. Välj den specifika smaken i den vänstra rutan. Vi erbjuder x64 eller ARM för de flesta Linux-distributioner.

  6. Klicka på knappen Ladda ned i den högra rutan.

  7. Följ anvisningarna på sidan.

  8. Packa upp agenten i valfri katalog. cd till katalogen och kör ./config.sh.

Azure DevOps Server 2019 och Azure DevOps Server 2020

  1. Logga in på datorn med det konto som du har förberett behörigheter för enligt beskrivningen ovan.

  2. Logga in på Azure DevOps Server 2019 i webbläsaren och 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.

  3. Klicka på Ladda ned agent.

  4. I dialogrutan Hämta agent klickar du på Linux.

  5. Välj den specifika smaken i den vänstra rutan. Vi erbjuder x64 eller ARM för de flesta Linux-distributioner.

  6. Klicka på knappen Ladda ned i den högra rutan.

  7. Följ anvisningarna på sidan.

  8. Packa upp agenten i valfri katalog. cd till katalogen och kör ./config.sh.

Server-URL

Azure Pipelines: https://dev.azure.com/{your-organization}

Azure DevOps Server 2019: https://{your_server}/DefaultCollection

Authentication type

Azure-pipelines

Välj PAT och klistra sedan in pat-token som du skapade i kommandotolken.

Kommentar

När du använder PAT som autentiseringsmetod används PAT-token endast för den inledande konfigurationen av agenten. Läs mer i Kommunikation med Azure Pipelines eller TFS.

TFS eller Azure DevOps Server

Viktigt!

Kontrollera att servern är konfigurerad för att stödja den autentiseringsmetod som du vill använda.

När du konfigurerar din agent för att ansluta till TFS har du följande alternativ:

  • Alternativ Anslut till TFS eller Azure DevOps Server med grundläggande autentisering. När du har valt Alternativ uppmanas du att ange dina autentiseringsuppgifter.

  • Integrerad stöds inte på macOS eller Linux.

  • Förhandla (standard) Anslut till TFS eller 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.

  • PAT stöds endast på Azure Pipelines och TFS 2017 och senare. När du har valt PAT klistrar du in PAT-token som du skapade i kommandotolkens fönster. Använd en personlig åtkomsttoken (PAT) om din Azure DevOps Server- eller TFS-instans och agentdatorn inte finns i en betrodd domän. PAT-autentisering hanteras av din Azure DevOps Server- eller TFS-instans i stället för domänkontrollanten.

Kommentar

När du använder PAT som autentiseringsmetod används PAT-token endast för den inledande konfigurationen av agenten på Azure DevOps Server och de nyare versionerna av TFS. Läs mer i Kommunikation med Azure Pipelines eller TFS.

Kör interaktivt

Information om huruvida agenten ska köras i interaktivt läge eller som en tjänst finns i Agenter: Interaktiv kontra tjänst.

Så här kör du agenten interaktivt:

  1. Om du har kört agenten som en tjänst avinstallerar du tjänsten.

  2. Kör agenten.

    ./run.sh
    

Starta om agenten genom att trycka på Ctrl+C och sedan köra run.sh för att starta om den.

Om du vill använda din agent kör du ett jobb med agentens pool. Om du inte valde en annan pool finns agenten i standardpoolen.

Kör en gång

För agenter som har konfigurerats för att köras interaktivt kan du välja att låta agenten endast acceptera ett jobb. Så här kör du i den här konfigurationen:

./run.sh --once

Agenter i det här läget accepterar bara ett jobb och snurrar sedan ned korrekt (användbart för att köra i Docker på en tjänst som Azure Container Instances).

Kör som en systemtjänst

Om din agent körs på dessa operativsystem kan du köra agenten som en systemd tjänst:

  • Ubuntu 16 LTS eller senare
  • Red Hat 7.1 eller senare

Vi tillhandahåller ett exempelskript ./svc.sh där du kan köra och hantera din agent som en systemd tjänst. Det här skriptet genereras när du har konfigurerat agenten. Vi rekommenderar att du granskar och vid behov uppdaterar skriptet innan du kör det.

Några viktiga varningar:

  • Om du kör din agent som en tjänst kan du inte köra agenttjänsten som root användare.
  • Användare som kör SELinux har rapporterat problem med det angivna svc.sh skriptet. Se det här agentproblemet som en startpunkt. SELinux är inte en konfiguration som stöds officiellt.

Kommentar

Om du har en annan distribution, eller om du föredrar andra metoder, kan du använda vilken typ av tjänstmekanism du vill. Se Tjänstfiler.

Kommandon

Ändra till agentkatalogen

Om du till exempel har installerat i undermappen myagent för din hemkatalog:

cd ~/myagent$

Installera

Kommando:

sudo ./svc.sh install [username]

Det här kommandot skapar en tjänstfil som pekar på ./runsvc.sh. Det här skriptet konfigurerar miljön (mer information nedan) och startar agentvärden. Om username parametern inte anges hämtas användarnamnet från miljövariabeln $SUDO_USER som anges av sudo-kommandot. Den här variabeln är alltid lika med namnet på den användare som anropade sudo kommandot.

Start

sudo ./svc.sh start

Status

sudo ./svc.sh status

Stoppa

sudo ./svc.sh stop

Avinstallera

Du bör sluta innan du avinstallerar.

sudo ./svc.sh uninstall

Uppdatera miljövariabler

När du konfigurerar tjänsten tar den en ögonblicksbild av några användbara miljövariabler för din aktuella inloggningsanvändare, till exempel PATH, LANG, JAVA_HOME, ANT_HOME och MYSQL_PATH. Om du behöver uppdatera variablerna (till exempel när du har installerat en ny programvara):

./env.sh
sudo ./svc.sh stop
sudo ./svc.sh start

Ögonblicksbilden av miljövariablerna lagras i .env filen (PATH lagras i .path) under agentrotkatalogen. Du kan också ändra filerna direkt för att tillämpa ändringar i miljövariabeln.

Kör instruktioner innan tjänsten startas

Du kan också köra egna instruktioner och kommandon som ska köras när tjänsten startas. Du kan till exempel konfigurera miljön eller anropa skript.

  1. Redigera runsvc.sh.

  2. Ersätt följande rad med dina instruktioner:

    # insert anything to setup env when running as a service
    

Tjänstfiler

När du installerar tjänsten installeras vissa tjänstfiler.

systemd-tjänstfil

En systemd-tjänstfil skapas:

/etc/systemd/system/vsts.agent.{tfs-name}.{agent-name}.service

Du har till exempel konfigurerat en agent (se ovan) med namnet our-linux-agent. Tjänstfilen är antingen:

  • Azure Pipelines: namnet på din organisation. Om du till exempel ansluter till https://dev.azure.com/fabrikamblir tjänstnamnet /etc/systemd/system/vsts.agent.fabrikam.our-linux-agent.service

  • TFS eller Azure DevOps Server: namnet på din lokala server. Om du till exempel ansluter till http://our-server:8080/tfsblir tjänstnamnet /etc/systemd/system/vsts.agent.our-server.our-linux-agent.service

sudo ./svc.sh install genererar den här filen från den här mallen: ./bin/vsts.agent.service.template

.service-fil

sudo ./svc.sh start hittar tjänsten genom att läsa .service filen, som innehåller namnet på den systemd-tjänstfil som beskrivs ovan.

Alternativa tjänstmekanismer

Vi tillhandahåller skriptet ./svc.sh som ett bekvämt sätt för dig att köra och hantera din agent som en systembaserad tjänst. Men du kan använda vilken typ av tjänstmekanism du vill (till exempel initd eller uppstart).

Du kan använda mallen som beskrivs ovan för att underlätta generering av andra typer av tjänstfiler.

Använd en cgroup för att undvika agentfel

Det är viktigt att undvika situationer där agenten misslyckas eller blir oanvändbar eftersom agenten annars inte kan strömma pipelineloggar eller rapportera pipelinestatus tillbaka till servern. Du kan minska risken för att den här typen av problem orsakas av högt minnestryck med hjälp av cgroups och en lägre oom_score_adj. När du har gjort det återtar Linux systemminnet från pipelinejobbsprocesser innan minne från agentprocessen frigörs. Lär dig hur du konfigurerar cgroups och OOM-poäng.

Ersätt en agent

Om du vill ersätta en agent följer du stegen Ladda ned och konfigurerar agenten igen.

När du konfigurerar en agent med samma namn som en agent som redan finns tillfrågas du om du vill ersätta den befintliga agenten. Om du svarar Ykontrollerar du att du tar bort agenten (se nedan) som du ersätter. Annars stängs en av agenterna av efter några minuters konflikter.

Ta bort och konfigurera om en agent

Så här tar du bort agenten:

  1. Stoppa och avinstallera tjänsten enligt beskrivningen ovan.

  2. Ta bort agenten.

    ./config.sh remove
    
  3. Ange dina autentiseringsuppgifter.

När du har tagit bort agenten kan du konfigurera den igen.

Obevakad konfiguration

Agenten kan konfigureras från ett skript utan mänsklig inblandning. Du måste skicka --unattended och svaren på alla frågor.

För att konfigurera en agent måste den känna till URL:en till din organisation eller samling och autentiseringsuppgifter för någon som har behörighet att konfigurera agenter. Alla andra svar är valfria. Alla kommandoradsparametrar kan anges med hjälp av en miljövariabel i stället: ange dess namn i versaler och prepend VSTS_AGENT_INPUT_. I stället för att --passwordtill exempel VSTS_AGENT_INPUT_PASSWORD ange .

Obligatoriska alternativ

  • --unattended – Agentkonfigurationen frågar inte efter information och alla inställningar måste anges på kommandoraden
  • --url <url> – SERVERNs URL. Till exempel: https://dev.azure.com/myorganization eller http://my-azure-devops-server:8080/tfs
  • --auth <type> – autentiseringstyp. Giltiga värden är:
    • pat (Personlig åtkomsttoken) – PAT är det enda schemat som fungerar med Azure DevOps Services.
    • negotiate (Kerberos eller NTLM)
    • alt (Grundläggande autentisering)
    • integrated (Standardautentiseringsuppgifter för Windows)

Autentiseringsalternativ

  • Om du väljer --auth pat:
    • --token <token> – anger din personliga åtkomsttoken
    • PAT är det enda schemat som fungerar med Azure DevOps Services.
  • Om du väljer --auth negotiate eller --auth alt:
    • --userName <userName> – anger ett Windows-användarnamn i formatet domain\userName eller userName@domain.com
    • --password <password> – anger ett lösenord

Pool- och agentnamn

  • --pool <pool> – poolnamn för agenten som ska anslutas
  • --agent <agent> – agentnamn
  • --replace – ersätt agenten i en pool. Om en annan agent lyssnar med samma namn börjar den misslyckas med en konflikt

Agentkonfiguration

  • --work <workDirectory> – arbetskatalog där jobbdata lagras. Standardvärdet är _work under roten i agentkatalogen. Arbetskatalogen ägs av en viss agent och bör inte delas mellan flera agenter.
  • --acceptTeeEula – Acceptera licensavtalet för Team Explorer överallt (endast macOS och Linux)
  • --disableloguploads – strömma eller skicka inte utdata från konsolloggen till servern. I stället kan du hämta dem från agentvärdens filsystem när jobbet har slutförts.

Start endast för Windows

  • --runAsService – konfigurera agenten så att den körs som en Windows-tjänst (kräver administratörsbehörighet)
  • --runAsAutoLogon – Konfigurera automatisk inloggning och kör agenten vid start (kräver administratörsbehörighet)
  • --windowsLogonAccount <account> - används med --runAsService eller --runAsAutoLogon för att ange Windows-användarnamnet i formatet domain\userName eller userName@domain.com
  • --windowsLogonPassword <password> – används med --runAsService eller --runAsAutoLogon för att ange lösenord för Windows-inloggning (krävs inte för grupphanterade tjänstkonton och Inbyggda Windows-konton, till exempel "NT AUTHORITY\NETWORK SERVICE")
  • --enableservicesidtypeunrestricted – används med --runAsService för att konfigurera agenten med tjänst-SID-typ som SERVICE_SID_TYPE_UNRESTRICTED (kräver administratörsbehörighet)
  • --overwriteAutoLogon – används med --runAsAutoLogon för att skriva över den befintliga automatiska inloggningen på datorn
  • --noRestart – används med --runAsAutoLogon för att hindra värden från att startas om när agentkonfigurationen har slutförts

Felsöka konfiguration av agenten med alternativet runAsAutoLogon

Om du konfigurerar agenten runAsAutoLogon med alternativet körs agenten varje gång efter att datorn har startats om. Utför nästa steg om agenten inte körs efter att datorn har startats om.

Om agenten redan har konfigurerats på datorn

Innan du konfigurerar om agenten måste du ta bort den gamla agentkonfigurationen, så försök att köra det här kommandot från agentmappen:

.\config.cmd remove --auth 'PAT' --token '<token>'

Kontrollera om agenten har tagits bort från agentpoolen när kommandot har körts:

<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents

Ta bort agenten från agentpoolen manuellt om den inte har tagits bort genom att köra kommandot .

Försök sedan konfigurera om agenten genom att köra det här kommandot från agentmappen:

.\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>'

Ange agentnamnet (ett specifikt unikt namn) och kontrollera om agenten dök upp i agentpoolen efter omkonfigurationen.

Det blir mycket bättre att packa upp ett agentarkiv (som kan laddas ned här) och köra det här kommandot från den nya uppackade agentmappen.

Kontrollera om Windows-registernyckeln registreras och sparas korrekt

whoami /user Kör kommandot för att hämta <sid>. Öppna Registry Editor och följ sökvägen:

Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Kontrollera om det finns VSTSAgent nyckeln. Ta bort den här nyckeln om den finns och stäng Registry Editor och konfigurera sedan agenten .\config.cmd genom att köra kommandot (utan args) från agentmappen. Innan du svarar på frågan Enter Restart the machine at a later time?öppnar Registry Editor du igen och kontrollerar om VSTSAgent nyckeln har dykt upp. Tryck Enter på för att besvara frågan och kontrollera om VSTSAgent nyckeln finns kvar när datorn har startats om.

Kontrollera om Windows-registernycklar fungerar bra på datorn

Skapa en autorun.cmd fil som innehåller följande rad: echo "Hello from AutoRun!". Öppna Registry Editor och skapa i sökvägen ovanför ett nytt nyckel/värde-par med nyckeln AutoRun och värdet

C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"

Starta om fin virtuella dator. Du har problem med Windows-registernycklar om du inte ser något konsolfönster med meddelandet Hello from AutoRun! .

Endast distributionsgrupp

  • --deploymentGroup – konfigurera agenten som en distributionsgruppsagent
  • --deploymentGroupName <name> – används med --deploymentGroup för att ange distributionsgruppen som agenten ska ansluta till
  • --projectName <name> – används med --deploymentGroup för att ange projektnamnet
  • --addDeploymentGroupTags – används med --deploymentGroup för att ange att taggar för distributionsgrupp ska läggas till
  • --deploymentGroupTags <tags> – används med --addDeploymentGroupTags för att ange kommaavgränsad lista över taggar för distributionsgruppagenten – till exempel "web, db"

Endast miljöer

  • --addvirtualmachineresourcetags – används för att ange att miljöresurstaggar ska läggas till
  • --virtualmachineresourcetags <tags> – används med --addvirtualmachineresourcetags för att ange kommaavgränsad lista över taggar för miljöresursagenten – till exempel "web, db"

./config.sh --help visar alltid de senaste obligatoriska och valfria svaren.

Diagnostik

Om du har problem med din lokala agent kan du prova att köra diagnostik. När du har konfigurerat agenten:

./run.sh --diagnostics

Detta går igenom en diagnostiksvit som kan hjälpa dig att felsöka problemet. Diagnostikfunktionen är tillgänglig från och med agentversion 2.165.0.

Hjälp om andra alternativ

Om du vill veta mer om andra alternativ:

./config.sh --help

Hjälpen innehåller information om autentiseringsalternativ och obevakad konfiguration.

Funktioner

Agentens funktioner katalogiseras och annonseras i poolen så att endast de versioner och versioner som den kan hantera tilldelas till den. Se Funktioner för bygg- och versionsagenter.

I många fall måste du installera programvara eller verktyg när du har distribuerat en agent. Vanligtvis bör du installera på dina agenter oavsett vilken programvara och vilka verktyg du använder på utvecklingsdatorn.

Om ditt bygge till exempel innehåller npm-aktiviteten körs inte bygget om det inte finns en byggagent i poolen som har npm installerat.

Viktigt!

Funktionerna omfattar alla miljövariabler och de värden som anges när agenten körs. Om något av dessa värden ändras när agenten körs måste agenten startas om för att hämta de nya värdena. När du har installerat ny programvara på en agent måste du starta om agenten för att den nya funktionen ska visas i poolen, så att bygget kan köras.

Om du vill exkludera miljövariabler som funktioner kan du ange dem genom att ange en miljövariabel VSO_AGENT_IGNORE med en kommaavgränsad lista med variabler som ska ignoreras.

Vanliga frågor

Hur gör jag för att kontrollera att jag har den senaste 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 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 under följande mapp:

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

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

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.

Varför behövs sudo för att köra tjänstkommandona?

./svc.sh använder systemctl, vilket kräver sudo.

Källkod: systemd.svc.sh.template på GitHub

Jag kör en brandvägg och min kod finns i Azure-lagringsplatser. Vilka URL:er behöver agenten kommunicera med?

Om du kör en agent i ett säkert nätverk bakom en brandvägg kontrollerar du att agenten kan initiera kommunikation med följande URL:er och IP-adresser.

Domänens URL beskrivning
https://{organization_name}.pkgs.visualstudio.com Azure DevOps-paketerings-API för organisationer som använder domänen {organization_name}.visualstudio.com
https://{organization_name}.visualstudio.com För organisationer som använder domänen {organization_name}.visualstudio.com
https://{organization_name}.vsblob.visualstudio.com Azure DevOps-telemetri för organisationer som använder domänen {organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com Versionshanteringstjänster för organisationer som använder domänen {organization_name}.visualstudio.com
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services för organisationer som använder domänen {organization_name}.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com Azure DevOps Test Management Services för organisationer som använder domänen {organization_name}.visualstudio.com
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com För organisationer som använder domänen dev.azure.com
https://*.vsassets.io Azure Artifacts via CDN
https://*.vsblob.visualstudio.com Azure DevOps-telemetri för organisationer som använder domänen dev.azure.com
https://*.vssps.visualstudio.com Azure DevOps Platform Services för organisationer som använder domänen dev.azure.com
https://*.vstmr.visualstudio.com Azure DevOps Test Management Services för organisationer som använder domänen dev.azure.com
https://app.vssps.visualstudio.com För organisationer som använder domänen {organization_name}.visualstudio.com
https://dev.azure.com För organisationer som använder domänen dev.azure.com
https://login.microsoftonline.com Microsoft Entra-inloggning
https://management.core.windows.net Azure Management API:s
https://vstsagentpackage.azureedge.net Agentpaket

Se till att din organisation fungerar med befintliga brandväggs- eller IP-begränsningar genom att se till att dev.azure.com och *dev.azure.com är öppna och uppdatera dina tillåtna IP-adresser så att de inkluderar följande IP-adresser baserat på din IP-version. Om du för närvarande tillåter att ip-adresserna 13.107.6.183 och 13.107.9.183 anges lämnar du dem på plats eftersom du inte behöver ta bort dem.

IPv4-intervall

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6-intervall

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Kommentar

Mer information om tillåtna adresser finns i Tillåtna adresslistor och nätverksanslutningar.

Hur gör jag för att köra agenten med självsignerat certifikat?

Kör agenten med självsignerat certifikat

Hur gör jag för att köra agenten bakom en webbproxy?

Kör agenten bakom en webbproxy

Hur gör jag för att starta om agenten

Om du kör agenten interaktivt kan du läsa omstartsinstruktionerna i Kör interaktivt. Om du kör agenten som en systembaserad tjänst följer du stegen för att stoppa och sedan Starta agenten.

Hur gör jag för att konfigurera agenten så att den kringgår en webbproxy och ansluter till Azure Pipelines?

Om du vill att agenten ska kringgå proxyn och ansluta direkt till Azure Pipelines bör du konfigurera webbproxyn så att agenten får åtkomst till följande URL:er.

För organisationer som använder domänen *.visualstudio.com :

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

För organisationer som använder domänen dev.azure.com :

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

Se till att din organisation fungerar med befintliga brandväggs- eller IP-begränsningar genom att se till att dev.azure.com och *dev.azure.com är öppna och uppdatera dina tillåtna IP-adresser så att de inkluderar följande IP-adresser baserat på din IP-version. Om du för närvarande tillåter att ip-adresserna 13.107.6.183 och 13.107.9.183 anges lämnar du dem på plats eftersom du inte behöver ta bort dem.

IPv4-intervall

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6-intervall

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Kommentar

Med den här proceduren kan agenten kringgå en webbproxy. Bygg-pipelinen och skripten måste fortfarande hantera att kringgå webbproxyn för varje uppgift och verktyg som du kör i bygget.

Om du till exempel använder en NuGet-uppgift måste du konfigurera webbproxyn så att den stöder att url:en kringgås för den server som är värd för NuGet-feeden som du använder.

Jag använder TFS och URL:erna i avsnitten ovan fungerar inte för mig. Var kan jag få hjälp?

Webbplatsinställningar och säkerhet

Jag använder TFS lokalt och jag ser inte några av dessa funktioner. Varför inte?

Vissa av dessa funktioner är endast tillgängliga i Azure Pipelines och är ännu inte tillgängliga lokalt. Vissa funktioner är tillgängliga lokalt om du har uppgraderat till den senaste versionen av TFS.