Lokala macOS-agenter
Azure DevOps Services-| Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
Anteckning
Pipelines-teamet släpper version 3.x-agentprogramvara, som för närvarande är i förhandsversion. Mer information finns i Förhandsversion av agentprogramvara version 3.
Anteckning
I Microsoft Team Foundation Server (TFS) 2018 och tidigare versioner kallas bygg- och versionspipelinesför definitioner, körningar kallas byggen, tjänstanslutningar kallas tjänstslutpunkter, faser kallas miljöer och jobb kallas faser.
Om du vill skapa och distribuera Xcode-appar eller Xamarin.iOS-projekt behöver du minst en macOS-agent. Den här agenten kan också skapa och distribuera Java- och Android-appar.
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 macOS-agent med egen värd.
- Annars har du kommit till rätt plats för att konfigurera en agent på macOS. Fortsätt till nästa avsnitt.
Läs 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
Kontrollera att datorn har följande krav:
- macOS 10.15 "Catalina", macOS 11.0 "Big Sur" eller macOS 12.0 "Monterey"
- Git 2.9.0 eller senare (den senaste versionen rekommenderas starkt – du kan enkelt installera med Homebrew)
Dessa förhandsversioner krävs för agentversion 2.125.0 och senare.
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.)
TEE-plugin-programmet används för TFVC-funktioner. Det har ett licensavtal 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 vissa inaktuella Java-beroenden, från och med 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.
Anteckning
Obs! Du kanske märker att utcheckningsaktiviteten tar lång tid att börja fungera 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 plats: 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:
- Ange
DISABLE_TEE_PLUGIN_REMOVAL
miljö- eller pipelinevariabeln tilltrue
. Den här variabeln hindrar agenten från att ta bort TEE-plugin-programmet efter TFVC-lagringsplatsens utcheckning. - Ladda ned TEE-CLC version 14.135.0 manuellt från Team Explorer Everywhere GitHub-versioner.
- Extrahera innehållet i
TEE-CLC-14.135.0
mappen till<agent_directory>/externals/tee
.
Förbereda behörigheter
Om du skapar från en lagringsplats för subversion måste du installera subversionsklienten på datorn.
Du bör köra agentinstallationen 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.
Informationssäkerhet för lokalt installerade agenter
Den användare som konfigurerar agenten behöver pooladministratörsbehörigheter, men inte den användare som kör agenten.
De mappar 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 pipelinesagenter för att utföra arbete och bestämma vilka minimibehörigheter 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 gruppen med 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 noga överväga åtkomst 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 utföra de här stegen. Agenten använder inte den här personens autentiseringsuppgifter dagligen, men de måste slutföra registreringen. Läs mer om hur agenter kommunicerar.
Autentisera med en personlig åtkomsttoken (PAT)
- Logga in med det användarkonto som du planerar att använda i Team Foundation Server-webbportalen (
https://{your-server}:8080/tfs/
).
- Logga in med det användarkonto som du planerar att använda i din Azure DevOps Server webbportal (
https://{your-server}/DefaultCollection/
).
- Logga in med det användarkonto som du planerar att använda i din Azure DevOps-organisation (
https://dev.azure.com/{your_organization}
).
Öppna din profil på startsidan. Gå till säkerhetsinformationen.
Skapa en personlig åtkomsttoken.
Anteckning
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.
Öppna dina användarinställningar på startsidan och välj sedan Personliga åtkomsttoken.
Skapa en personlig åtkomsttoken.
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äsa, hantera) för omfånget och kontrollera 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 den fullständiga listan över omfång.
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.
I annat fall:
Öppna en webbläsare och gå till fliken Agentpooler för din Azure Pipelines-organisation eller Azure DevOps Server- eller TFS-server:
Välj Azure DevOps, Organisationsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Gå till projektet och välj Inställningar (kugghjulsikon) >Agentköer.
Välj Hantera pooler.
Välj poolen till höger på sidan och klicka sedan på Säkerhet.
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 tfs eller Azure DevOps Server administratör.
Om det är en distributionsgruppsagent kan administratören vara administratör för en distributionsgrupp, 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äkerhet på sidan Distributionsgrupper i Azure Pipelines.
Anteckning
Om du ser ett meddelande som det här: Det gick inte att lägga till identiteten. Prova en annan identitet. Du har förmodligen följt stegen ovan för en organisationsägare eller TFS eller Azure DevOps Server administratör. Du behöver inte göra någonting; du redan har behörighet att administrera agentkön.
Ladda ned och konfigurera agenten
Azure-pipelines
Logga in på datorn med det konto som du har förberett behörigheter för enligt beskrivningen ovan.
Logga in på Azure Pipelines i webbläsaren och gå till fliken Agentpooler :
Välj Azure DevOps, Organisationsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Gå till projektet och välj Inställningar (kugghjulsikon) >Agentköer.
Välj Hantera pooler.
Välj standardpoolen , välj fliken Agenter och välj Ny agent.
Klicka på macOSi dialogrutan Hämta agenten.
Klicka på knappen Ladda ned .
Följ anvisningarna på sidan.
Rensa det utökade attributet för tar-filen:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz
.Packa upp agenten i valfri katalog.
cd
till katalogen och kör./config.sh
. Kontrollera att sökvägen till katalogen inte innehåller några blanksteg eftersom verktyg och skript inte alltid undfly mellanslag.
Azure DevOps Server 2019 och Azure DevOps Server 2020
Logga in på datorn med det konto som du har förberett behörigheter för enligt beskrivningen ovan.
Logga in på Azure DevOps Server i webbläsaren och gå till fliken Agentpooler:
Välj Azure DevOps, Organisationsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Gå till projektet och välj Inställningar (kugghjulsikon) >Agentköer.
Välj Hantera pooler.
Klicka på Ladda ned agent.
Klicka på macOS i dialogrutan Hämta agent.
Klicka på knappen Ladda ned .
Följ anvisningarna på sidan.
Rensa det utökade attributet för tar-filen:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz
.Packa upp agenten i valfri katalog.
cd
till katalogen och kör./config.sh
. Kontrollera att sökvägen till katalogen inte innehåller några blanksteg eftersom verktyg och skript inte alltid undfly mellanslag.
TFS 2018
Logga in på datorn med det konto som du har förberett behörigheter för enligt beskrivningen ovan.
Logga in på Azure Pipelines eller TFS i webbläsaren och gå till fliken Agentpooler :
Gå till projektet och välj Inställningar (kugghjulsikon) >Agentköer.
Välj Hantera pooler.
Klicka på Ladda ned agent.
Klicka på macOS i dialogrutan Hämta agent.
Klicka på knappen Ladda ned .
Följ anvisningarna på sidan.
Rensa det utökade attributet för tar-filen:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz
.Packa upp agenten i valfri katalog.
cd
till katalogen och kör./config.sh
. Kontrollera att sökvägen till katalogen inte innehåller några blanksteg eftersom verktyg och skript inte alltid undfly mellanslag.
Server-URL
Azure Pipelines: https://dev.azure.com/{your-organization}
TFS 2018 och senare: https://{your_server}/tfs
Autentiseringstyp
Azure-pipelines
Välj PAT och klistra sedan in pat-token som du skapade i kommandotolken.
Anteckning
När du använder PAT som autentiseringsmetod används PAT-token endast för agentens inledande konfiguration. 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:
Alternativa 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 i 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 kommandotolken. 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.
Anteckning
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öra interaktivt
Vägledning 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:
Om du har kört agenten som en tjänst avinstallerar du tjänsten.
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 agentpoolen. 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 agenten bara ska 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 drar sedan nedåt på ett smidigt sätt (användbart för att köra på en tjänst som Azure Container Instances).
Kör som en startad tjänst
Vi tillhandahåller skriptet ./svc.sh
som du kan använda för att köra och hantera din agent som en startad LaunchAgent-tjänst. Det här skriptet genereras när du har konfigurerat agenten. Tjänsten har åtkomst till användargränssnittet för att köra dina användargränssnittstester.
Anteckning
Om du föredrar andra metoder kan du använda den typ av tjänstmekanism som du föredrar. Se Tjänstfiler.
Token
I avsnittet nedan ersätts dessa token:
{agent-name}
{tfs-name}
Du har till exempel konfigurerat en agent (se ovan) med namnet our-osx-agent
. I följande exempel {tfs-name}
är antingen:
Azure Pipelines: namnet på din organisation. Om du till exempel ansluter till
https://dev.azure.com/fabrikam
blir tjänstnamnetvsts.agent.fabrikam.our-osx-agent
TFS: namnet på din lokala TFS AT-server. Om du till exempel ansluter till
http://our-server:8080/tfs
blir tjänstnamnetvsts.agent.our-server.our-osx-agent
Kommandon
Ändra till agentkatalogen
Om du till exempel har installerat i undermappen myagent
för din hemkatalog:
cd ~/myagent$
Installera
Kommandot:
./svc.sh install
Det här kommandot skapar en startad plist som pekar på ./runsvc.sh
. Det här skriptet konfigurerar miljön (mer information nedan) och startar agentens värd.
Start
Kommandot:
./svc.sh start
Utdata:
starting vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist
Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}
Det vänstra numret är pid om tjänsten körs. Om det andra talet inte är noll uppstod ett problem.
Status
Kommandot:
./svc.sh status
Utdata:
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist
Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}
Det vänstra numret är pid om tjänsten körs. Om det andra talet inte är noll uppstod ett problem.
Stoppa
Kommandot:
./svc.sh stop
Utdata:
stopping vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist
Stopped
Avinstallera
Du bör stoppa innan du avinstallerar.
Kommandot:
./svc.sh uninstall
Automatisk inloggning och lås
Normalt körs agenttjänsten endast efter att användaren har loggat in. Om du vill att agenttjänsten ska startas automatiskt när datorn startas om kan du konfigurera datorn så att den automatiskt loggar in och låser vid start. Se Konfigurera mac-datorn så att den automatiskt loggas in under start – Apple-support.
Anteckning
Mer information finns i bloggen Terminally Geeky: use automatic login more securely (Terminally Geeky: use automatic login more securely ). .plist-filen som nämns i den bloggen kanske inte längre är tillgänglig vid källan, men en kopia finns här: Lifehacker – Gör så att OS X läser in skrivbordet innan du loggar in.
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 ny programvara):
./env.sh
./svc.sh stop
./svc.sh start
Ögonblicksbilden av miljövariablerna lagras i .env
filen under agentrotkatalogen. Du kan också ändra filen direkt för att tillämpa miljövariabeländringar.
Kör instruktioner innan tjänsten startar
Du kan också köra egna instruktioner och kommandon som ska köras när tjänsten startar. Du kan till exempel konfigurera miljön eller anropa skript.
Redigera
runsvc.sh
.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 införs vissa tjänstfiler.
.plist-tjänstfil
En .plist-tjänstfil skapas:
~/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist
Ett exempel:
~/Library/LaunchAgents/vsts.agent.fabrikam.our-osx-agent.plist
sudo ./svc.sh install
genererar den här filen från den här mallen: ./bin/vsts.agent.plist.template
.service-fil
./svc.sh start
hittar tjänsten genom att läsa .service
filen som innehåller sökvägen till plist-tjänstfilen 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 startad LaunchAgent-tjänst. Men du kan använda vilken typ av tjänstmekanism du vill.
Du kan använda mallen som beskrivs ovan för att underlätta generering av andra typer av tjänstfiler. Du kan till exempel ändra mallen för att generera en tjänst som körs som en startdaemon om du inte behöver UI-tester och inte vill konfigurera automatisk inloggning och lås. Se Apple Developer Library: Creating Launch Daemons and Agents (Apple Developer Library: Skapa startdaemoner och agenter).
Ersätta en agent
Om du vill ersätta en agent följer du stegen för att ladda ned och konfigurera 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 Y
kontrollerar 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:
Stoppa och avinstallera tjänsten enligt beskrivningen ovan.
Ta bort agenten.
./config.sh remove
Ange 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 --password
till 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>
- URL för servern. 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 formatetdomain\userName
elleruserName@domain.com
--password <password>
– anger ett lösenord
Pool- och agentnamn
--pool <pool>
– poolnamn för agenten som ska ansluta--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 för agentkatalogen. Arbetskatalogen ägs av en viss agent och bör inte delas mellan flera agenter.--acceptTeeEula
– acceptera teamutforskarens licensavtal för alla slutanvändare (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 formatetdomain\userName
elleruserName@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")--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 runAsAutoLogon
alternativet
När 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 togs 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 agenten genom att köra .\config.cmd
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 efter att 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 datorn. 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 den distributionsgrupp 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 distributionsgruppsagenten , 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. Mer information finns i Skapa och släppa agentfunktioner.
När du har distribuerat en agent måste du i många fall installera programvara eller verktyg. Vanligtvis bör du installera på dina agenter oavsett vilken programvara och de verktyg du använder på utvecklingsdatorn.
Om din version 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 undanta miljövariabler som funktioner kan du ange dem genom att ange en miljövariabel VSO_AGENT_IGNORE
med en kommaavgränsad lista över variabler som ska ignoreras.
Vanliga frågor
Hur gör jag för att kontrollera att jag har den senaste versionen av v2-agenten?
Gå till fliken Agentpooler :
Välj Azure DevOps, Organisationsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Välj Azure DevOps, Samlingsinställningar.
Välj Agentpooler.
Gå till projektet och välj Inställningar (kugghjulsikon) >Agentköer.
Välj Hantera pooler.
Klicka på poolen som innehåller agenten.
Kontrollera att agenten är aktiverad.
Gå till fliken Funktioner:
Välj önskad agentpool på fliken Agentpooler .
Välj Agenter och välj önskad agent.
Välj fliken Funktioner .
Anteckning
Microsofts 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.
Välj önskad pool på fliken Agentpooler .
Välj Agenter och välj önskad agent.
Välj fliken Funktioner .
Välj önskad pool på fliken Agentpooler .
Välj Agenter och välj önskad agent.
Välj fliken Funktioner .
Välj önskad agent och välj fliken Funktioner .
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 som anges.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 följde med servern när den släpptes. Det här scenariot gäller även när servern inte har åtkomst till Internet.
Från en dator med Internetåtkomst laddar du ned den senaste versionen av agentpaketfilerna (i .zip- eller .tar.gz-formulär) från github-versionssidan för Azure Pipelines Agent.
Överför de nedladdade paketfilerna till varje Azure DevOps Server programnivå med valfri metod (till exempel USB-enhet, nätverksöverföring och så vidare). Placera agentfilerna
%ProgramData%\Microsoft\Azure DevOps\Agents
under mappen .Allt är klart! Din Azure DevOps Server kommer nu att använda 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.
Var kan jag lära mig mer om hur den startade tjänsten fungerar?
Apple Developer Library: Skapa startdaemoner och agenter
Jag kör en brandvägg och min kod finns i Azure Repos. 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 kommunikationen med följande URL:er och IP-adresser.
Domänens URL | Beskrivning |
---|---|
https://{organization_name}.pkgs.visualstudio.com |
Azure DevOps Packaging 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 |
Inloggning i Azure Active Directory |
https://management.core.windows.net |
Azure Management API:s |
https://vstsagentpackage.azureedge.net |
Agentpaket |
För att säkerställa att din organisation fungerar med befintliga brandväggs- eller IP-begränsningar kontrollerar du att dev.azure.com
och *dev.azure.com
är öppna och uppdaterar 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
Anteckning
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 ett självsignerat certifikat?
Köra agenten med ett 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 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 till Azure Pipelines direkt 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
För att säkerställa att din organisation fungerar med befintliga brandväggs- eller IP-begränsningar kontrollerar du att dev.azure.com
och *dev.azure.com
är öppna och uppdaterar 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
Anteckning
Den här proceduren gör att agenten kan 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 för den server som är värd för NuGet-feeden som du använder kringgås.
Jag använder TFS och URL:erna i avsnitten ovan fungerar inte för mig. Var kan jag få hjälp?
Jag använder TFS lokalt och 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.