Microsofts värdbaserade agenter

Azure DevOps Services

Microsoft-värdbaserade agenter är endast tillgängliga med Azure DevOps Services, som finns i molnet. Du kan inte använda Microsoft-värdbaserade agenter eller Azure Pipelines-agentpoolen med lokal TFS eller Azure DevOps Server. Med dessa lokala versioner måste du använda lokalt installerade agenter.

Viktigt!

Välj en version från Azure DevOps Innehållsversionsväljare.

Välj den version av den här artikeln som motsvarar din plattform och version. Versionsväljaren ligger ovanför innehållsförteckningen. Leta upp din Azure DevOps-plattform och -version.

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.

Programvara

Azure Pipelines-agentpoolen erbjuder flera avbildningar av virtuella datorer att välja mellan, inklusive ett brett utbud av verktyg och programvara.

Bild Specifikation för klassisk redigeringsagent YAML VM-avbildningsetikett Programvara som ingår
Windows Server 2022 med Visual Studio 2022 windows-2022 windows-latest OR windows-2022 Länk
Windows Server 2019 med Visual Studio 2019 windows-2019 windows-2019 Länk
Ubuntu 22.04 ubuntu-22.04 ubuntu-latest OR ubuntu-22.04 Länk
Ubuntu 20.04 ubuntu-20.04 ubuntu-20.04 Länk
macOS 13 Ventura macOS-13 macOS-13 Länk
macOS 12 Monterey macOS-12 macOS-latest OR macOS-12 Länk
macOS 11 Big Sur (inaktuell) macOS-11 macOS-11 Länk

Standardagentbilden för klassiska bygg-pipelines är windows-2019 och standardagentens avbildning för YAML-byggpipelines är ubuntu-latest. Mer information finns i Ange en pool i din pipeline.

Du kan se den installerade programvaran för varje värdbaserad agent genom att välja länken Inkluderad programvara i tabellen. När du använder macOS-avbildningar kan du välja mellan verktygsversioner manuellt. Läs mer.

Senaste uppdateringarna

Kunder uppmanas att migrera till nyare versioner eller en lokalt installerad agent.

Mer information och instruktioner om hur du uppdaterar dina pipelines som använder dessa avbildningar finns i Ta bort äldre avbildningar i Azure Pipelines-värdbaserade pooler.

Kommentar

macOS-kapacitet är för närvarande begränsad. Till skillnad från Linux- och Windows-avbildningar, där vår kapacitet begränsas av Azures all up-kapacitet, begränsas macOS-kapaciteten av den mängd maskinvara som vi har tillgänglig. Medan vi arbetar med att göra ytterligare kapacitet tillgänglig under våren 2024 kan vissa jobb uppleva fördröjd körning. När det är möjligt, t.ex. för jobb som inte skapar Apples ekosystemappar, bör kunderna välja Linux- eller Windows-avbildningar.

Kommentar

Den värdbaserade Azure Pipelines-poolen ersätter de tidigare värdbaserade poolerna som hade namn som mappats till motsvarande avbildningar. Alla jobb som du hade i de tidigare värdbaserade poolerna omdirigeras automatiskt till rätt avbildning i den nya Azure Pipelines-värdbaserade poolen. I vissa fall kan du fortfarande se de gamla poolnamnen, men bakom kulisserna körs de värdbaserade jobben med hjälp av Azure Pipelines-poolen. Mer information om den här uppdateringen finns i viktig information om en enskild värdbaserad pool från viktig information för 1 juli 2019 – Sprint 154.

Viktigt!

Om du vill begära ytterligare programvara som ska installeras på Microsoft-värdbaserade agenter ska du inte skapa en feedbackbegäran om det här dokumentet eller öppna ett supportärende. Öppna i stället ett problem på lagringsplatsen, där vi hanterar skripten för att generera olika avbildningar.

Så här identifierar du pipelines med en inaktuell värdbaserad avbildning

Om du vill identifiera pipelines som använder en inaktuell bild bläddrar du till följande plats i din organisation: https://dev.azure.com/{organization}/{project}/_settings/agentqueuesoch filtrerar på avbildningsnamnet för att kontrollera. I följande exempel kontrolleras bilden vs2017-win2016 .

Skärmbild av filtrering av pipelines efter bildnamn.

Du kan också fråga jobbhistorik för inaktuella bilder i projekt med hjälp av skriptet som finns här, som du ser i följande exempel.

./QueryJobHistoryForRetiredImages.ps1 -accountUrl https://dev.azure.com/{org} -pat {pat}

Använda en Microsoft-värdbaserad agent

Om du inte anger någon pool i YAML-pipelines är pipelines standard för Azure Pipelines-agentpoolen. Du behöver bara ange vilken avbildning av den virtuella datorn som du vill använda.

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo hello from Linux
- job: macOS
  pool:
    vmImage: 'macOS-latest'
  steps:
  - script: echo hello from macOS
- job: Windows
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo hello from Windows

Kommentar

Specifikationen för en pool kan göras på flera nivåer i en YAML-fil. Om du märker att pipelinen inte körs på den förväntade avbildningen kontrollerar du poolspecifikationen på pipeline-, fas- och jobbnivå.

Undvik hårdkodade referenser

När du använder en Microsoft-värdbaserad agent använder du alltid variabler för att referera till byggmiljön och agentresurserna. Hårdkoda till exempel inte enhetsbeteckningen eller mappen som innehåller lagringsplatsen. Den exakta layouten för de värdbaserade agenterna kan komma att ändras utan förvarning.

Maskinvara

Microsoft-värdbaserade agenter som kör Windows- och Linux-avbildningar etableras på virtuella Azure-datorer med en processor på 2 kärnor, 7 GB RAM-minne och 14 GB SSD-diskutrymme. De här virtuella datorerna finns i samma geografiska område som din Azure DevOps-organisation.

Agenter som kör macOS-avbildningar etableras på Mac-proffs med en processor på 3 kärnor, 14 GB RAM-minne och 14 GB SSD-diskutrymme. Dessa agenter körs alltid i USA oavsett var din Azure DevOps-organisation finns. Om datasuveränitet är viktigt för dig och om din organisation inte finns i USA bör du inte använda macOS-avbildningar. Läs mer.

Alla dessa datorer har minst 10 GB ledigt diskutrymme tillgängligt för dina pipelines att köra. Det här lediga utrymmet förbrukas när din pipeline checkar ut källkod, laddar ned paket, hämtar Docker-avbildningar eller genererar mellanliggande filer.

Viktigt!

Vi kan inte hantera begäranden om att öka diskutrymmet på Microsoft-värdbaserade agenter eller att etablera kraftfullare datorer. Om specifikationerna för Microsoft-värdbaserade agenter inte uppfyller dina behov bör du överväga lokala agenter eller skalningsuppsättningsagenter.

Nätverk

I vissa installationer kan du behöva känna till intervallet med IP-adresser där agenter distribueras. Om du till exempel behöver bevilja värdbaserade agenter åtkomst via en brandvägg kan du vilja begränsa åtkomsten med IP-adress. Eftersom Azure DevOps använder det globala Azure-nätverket varierar IP-intervallen över tid. Microsoft publicerar en JSON-fil varje vecka med IP-intervall för Azure-datacenter, uppdelade efter region. Den här filen uppdateras varje vecka med nya planerade IP-intervall. Endast den senaste versionen av filen är tillgänglig för nedladdning. Om du behöver tidigare versioner måste du ladda ned och arkivera dem varje vecka när de blir tillgängliga. De nya IP-intervallen träder i kraft följande vecka. Vi rekommenderar att du checkar tillbaka ofta (minst en gång i veckan) för att se till att du har en uppdaterad lista. Om agentjobben börjar misslyckas är ett viktigt första felsökningssteg att se till att konfigurationen matchar den senaste listan med IP-adresser. IP-adressintervallen för de värdbaserade agenterna visas i veckofilen under AzureCloud.<region>, till exempel AzureCloud.westus för regionen USA, västra.

Dina värdbaserade agenter körs i samma Azure-geografi som din organisation. Varje geografi innehåller en eller flera regioner. Även om agenten kan köras i samma region som din organisation, är det inte garanterat att göra det. För att få en fullständig lista över möjliga IP-intervall för din agent måste du använda IP-intervallen från alla regioner som finns i ditt geografiska område. Om din organisation till exempel finns i USA geografi måste du använda IP-intervallen för alla regioner i det geografiska området.

Om du vill ta reda på ditt geografiska område går du till https://dev.azure.com/<your_organization>/_settings/organizationOverview, hämtar din region och letar reda på det associerade geografiområdet från azure-geografitabellen. När du har identifierat ditt geografiska område använder du IP-intervallen från veckofilen för alla regioner i det geografiska området.

Viktigt!

Du kan inte använda privata anslutningar som ExpressRoute eller VPN för att ansluta Microsoft-värdbaserade agenter till företagets nätverk. Trafiken mellan Microsoft-värdbaserade agenter och dina servrar kommer att finnas över det offentliga nätverket.

Så här identifierar du möjliga IP-intervall för Microsoft-värdbaserade agenter

  1. Identifiera regionen för din organisation i Organisationsinställningar.
  2. Identifiera Azure Geography för din organisations region.
  3. Mappa namnen på regionerna i ditt geografiska område till det format som används i veckofilen, enligt formatet AzureCloud.<region>, till exempel AzureCloud.westus. Du kan mappa namnen på regionerna från Azure Geography-listan till det format som används i veckofilen genom att granska regionnamnen som skickas till konstruktorn för de regioner som definierats i källkoden för klassen Region från Azure Management Libraries för .NET.

    Kommentar

    Eftersom det inte finns något API i Azure Management Libraries för .NET för att visa en lista över regioner för ett geografiskt område, måste du ange dem manuellt enligt följande exempel.

  4. Hämta IP-adresserna för alla regioner i ditt geografiska område från veckofilen. Om din region är Brasilien, södra eller Europa, västra, måste du inkludera ytterligare IP-intervall baserat på din reservgeografi, enligt beskrivningen i följande kommentar.

Kommentar

På grund av kapacitetsbegränsningar kan vissa organisationer i regionerna Brasilien, södra eller Europa , västra ibland se sina värdbaserade agenter utanför sitt förväntade geografiska område. I dessa fall, förutom att inkludera IP-intervall för alla regioner i ditt geografiska område enligt beskrivningen i föregående avsnitt, måste ytterligare IP-intervall inkluderas för regionerna i kapacitetsåterställningsområdet.

Om din organisation finns i regionen Brasilien, södra, är ditt geografiska område för kapacitetsåterställning USA.

Om din organisation finns i regionen Europa , västra är geografin för kapacitetsåterställning Frankrike.

Våra Mac IP-intervall ingår inte i Azure-IP-adresserna ovan, eftersom de finns i GitHubs macOS-moln. IP-intervall kan hämtas med github-metadata-API:et med hjälp av anvisningarna här.

Exempel

I följande exempel hämtas ip-adressintervallen för den värdbaserade agenten för en organisation i regionen USA, västra från veckofilen. Eftersom regionen USA, västra finns i det USA geografiska området, inkluderas IP-adresserna för alla regioner i USA geografi. I det här exemplet skrivs IP-adresserna till konsolen.

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace WeeklyFileIPRanges
{
    class Program
    {
        // Path to the locally saved weekly file
        const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20230904.json";

        static void Main(string[] args)
        {
            // United States geography has the following regions:
            // Central US, East US, East US 2, East US 3, North Central US, 
            // South Central US, West Central US, West US, West US 2, West US 3
            // This list is accurate as of 9/8/2023
            List<string> USGeographyRegions = new List<string>
            {
                "centralus",
                "eastus",
                "eastus2",
                "eastus3",
                "northcentralus",
                "southcentralus",
                "westcentralus",
                "westus",
                "westus2",
                "westus3"
            };

            // Load the weekly file
            JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
            JArray values = (JArray)weeklyFile["values"];

            foreach (string region in USGeographyRegions)
            {
                string tag = $"AzureCloud.{region}";
                Console.WriteLine(tag);

                var ipList =
                    from v in values
                    where tag.Equals((string)v["name"], StringComparison.OrdinalIgnoreCase)
                    select v["properties"]["addressPrefixes"];

                foreach (var ip in ipList.Children())
                {
                    Console.WriteLine(ip);
                }
            }
        }
    }
}

Tjänsttaggar

Microsoft-värdbaserade agenter kan inte listas med tjänsttaggar. Om du försöker ge värdbaserade agenter åtkomst till dina resurser måste du följa metoden tillåtna ip-intervall.

Säkerhet

Microsoft-värdbaserade agenter körs på en säker Azure-plattform. Du måste dock vara medveten om följande säkerhetsöverväganden.

  • Även om Microsoft-värdbaserade agenter körs i ett offentligt Azure-nätverk tilldelas de inte offentliga IP-adresser. Externa entiteter kan därför inte rikta in sig på Microsoft-värdbaserade agenter.
  • Microsoft-värdbaserade agenter körs på enskilda virtuella datorer, som avbildningas på nytt efter varje körning. Varje agent är dedikerad till en enskild organisation och varje virtuell dator är endast värd för en enda agent.
  • Det finns flera fördelar med att köra din pipeline på Microsoft-värdbaserade agenter ur ett säkerhetsperspektiv. Om du kör obetrodd kod i pipelinen, till exempel bidrag från förgreningar, är det säkrare att köra pipelinen på Microsoft-värdbaserade agenter än på lokalt installerade agenter som finns i företagets nätverk.
  • När en pipeline behöver komma åt företagets resurser bakom en brandvägg måste du tillåta IP-adressintervallet för Azure-geografin. Detta kan öka din exponering eftersom IP-adressintervallet är ganska stort och eftersom datorer i det här intervallet även kan tillhöra andra kunder. Det bästa sättet att förhindra detta är att undvika behovet av att komma åt interna resurser. Information om hur du distribuerar artefakter till en uppsättning servrar finns i Kommunikation för att distribuera till målservrar.
  • Värdbaserade avbildningar överensstämmer inte med CIS-härdningsmått. Om du vill använda CIS-härdade bilder måste du skapa antingen lokalt installerade agenter eller skalningsuppsättningsagenter.

Funktioner och begränsningar

Microsoft-värdbaserade agenter:

  • Ha ovanstående programvara. Du kan också lägga till programvara under bygget eller lanseringen med hjälp av verktygsinstallationsuppgifter.
    • Du får en nybildad agent för varje jobb i pipelinen.
  • Ange 10 GB lagringsutrymme för dina käll- och byggutdata.
  • Ange en kostnadsfri nivå:
    • Offentligt projekt: 10 kostnadsfria Microsoft-värdbaserade parallella jobb som kan köras i upp till 360 minuter (6 timmar) varje gång, utan någon total tidsgräns per månad. Kontakta oss för att öka dina gränser för den kostnadsfria nivån.
    • Privat projekt: Ett kostnadsfritt parallellt jobb som kan köras i upp till 60 minuter varje gång, tills du har använt 1 800 minuter (30 timmar) per månad. Du kan betala för ytterligare kapacitet per parallellt jobb. Betalda parallella jobb tar bort den månatliga tidsgränsen och låter dig köra varje jobb i upp till 360 minuter (6 timmar). Köp Parallella jobb med Microsoft-värd.
    • När du skapar en ny Azure DevOps-organisation får du inte dessa kostnadsfria bidrag som standard. Om du vill begära det kostnadsfria bidraget för offentliga eller privata projekt skickar du en begäran.
  • Kör på virtuella Microsoft Azure-datorer för generell användning Standard_DS2_v2.
  • Kör som administratör i Windows och en lösenordslös sudo-användare i Linux.
  • (Endast Linux) Kör steg i en cgroup som erbjuder 6 GB fysiskt minne och 13 GB totalt minne.
  • Använd VM-avbildningar som uppdateras regelbundet (var tredje vecka).

Microsoft-värdbaserade agenter erbjuder inte:

  • Möjligheten att fjärransluta.
  • Möjligheten att släppa artefakter till en UNC-filresurs.
  • Möjligheten att ansluta datorer direkt till företagets nätverk.
  • Möjligheten att få större eller mer kraftfulla byggdatorer.
  • Möjligheten att förinläsa anpassad programvara. Du kan installera programvara under en pipelinekörning, till exempel via verktygsinstallationsuppgifter eller i ett skript.
  • Potentiella prestandafördelar som du kan få genom att använda lokalt installerade agenter som kan starta och köra versioner snabbare. Läs mer
  • Möjligheten att köra XAML-versioner.
  • Möjligheten att återställa till en tidigare vm-avbildningsversion. Du använder alltid den senaste versionen.

Om Microsoft-värdbaserade agenter inte uppfyller dina behov kan du distribuera egna lokalt installerade agenter eller använda skalningsuppsättningsagenter.

Vanliga frågor

Hur kan jag se vilken programvara som ingår i en avbildning?

Du kan se den installerade programvaran för varje värdbaserad agent genom att välja länken Inkluderad programvara i tabellen Programvara .

Kommentar

Som standard använder Windows-agenten den version av Git som paketeras med agentprogramvaran. Microsoft rekommenderar att du använder den version av Git som medföljer agenten, men du har flera alternativ för att åsidosätta det här standardbeteendet och använda den version av Git som agentdatorn har installerat i sökvägen.

Om du vill se vilken version av Git som används av en pipeline kan du titta på loggarna för ett checkout steg i pipelinen, som du ser i följande exempel.

Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1

Hur väljer Microsoft vilken programvara och vilka versioner som ska användas i avbildningen?

Mer information om de versioner av programvara som ingår i avbildningarna finns i Riktlinjer för vad som är installerat.

När uppdateras bilderna?

Bilder uppdateras vanligtvis varje vecka. Du kan kontrollera statusmärkena som är i formatet 20200113.x där den första delen anger det datum då avbildningen uppdaterades.

Vad kan jag göra om programvara jag behöver tas bort eller ersätts med en nyare version?

Du kan meddela oss genom att lämna in ett GitHub-problem genom att välja länkarna Inkluderad programvara i tabellen Använd en Microsoft-värdbaserad agent .

Du kan också använda en lokalt installerad agent som innehåller de exakta versioner av programvara som du behöver. Mer information finns i Lokalt installerade agenter.

Vad händer om jag behöver en större dator med mer processorkraft, minne eller diskutrymme?

Vi kan inte öka minne, processorkraft eller diskutrymme för Microsoft-värdbaserade agenter, men du kan använda lokalt installerade agenter eller skalningsuppsättningsagenter som finns på datorer med önskade specifikationer.

Jag kan inte välja en Microsoft-värdbaserad agent och jag kan inte köa min version eller distribution. Vad ska jag göra?

Microsoft-värdbaserade agenter är endast tillgängliga i Azure Pipelines och inte i TFS eller Azure DevOps Server.

Som standard har alla projektdeltagare i en organisation åtkomst till de Microsoft-värdbaserade agenterna. Men din organisationsadministratör kan begränsa åtkomsten för Microsoft-värdbaserade agenter till att välja användare eller projekt. Be ägaren av din Azure DevOps-organisation att ge dig behörighet att använda en Microsoft-värdbaserad agent. Se säkerhet för agentpooler.

Mina pipelines som körs på Microsoft-värdbaserade agenter tar längre tid att slutföra. Hur kan jag göra så att de går snabbare?

Om din pipeline nyligen har blivit långsammare kan du se om det finns eventuella avbrott på statussidan. Vi kan ha problem med vår tjänst. Annars kan du granska eventuella ändringar som du har gjort i programkoden eller pipelinen. Lagringsplatsens storlek kan ha ökat under utcheckningen, du kanske laddar upp större artefakter eller så kanske du kör fler tester.

Om du bara konfigurerar en pipeline och jämför prestanda för Microsoft-värdbaserade agenter med din lokala dator eller en lokalt installerad agent bör du kontrollera specifikationerna för den maskinvara som vi använder för att köra dina jobb. Vi kan inte ge dig större eller kraftfulla datorer. Du kan överväga att använda lokalt installerade agenter eller skalningsuppsättningsagenter om prestandan inte är godtagbar.

Jag behöver fler agenter. Vad ska jag göra?

Alla Azure DevOps-organisationer har flera kostnadsfria parallella jobb för projekt med öppen källkod och ett kostnadsfritt parallellt jobb och begränsade minuter varje månad för privata projekt. Kontakta supporten om du behöver ytterligare minuter eller parallella jobb för projektet med öppen källkod. Om du behöver ytterligare minuter eller parallella jobb för ditt privata projekt kan du köpa fler.

Min pipeline lyckas på en lokalt installerad agent, men misslyckas på Microsoft-värdbaserade agenter. Vad ska jag göra?

Din lokalt installerade agent har förmodligen alla rätt beroenden installerade på den, medan samma beroenden, verktyg och programvara inte är installerade på Microsoft-värdbaserade agenter. Granska först noggrant listan över programvara som är installerad på Microsoft-värdbaserade agenter genom att följa länken till Inkluderad programvara i tabellen ovan. Jämför sedan det med programvaran som är installerad på din egen värdbaserade agent. I vissa fall kan Microsoft-värdbaserade agenter ha de verktyg som du behöver (till exempel Visual Studio), men alla nödvändiga valfria komponenter kanske inte har installerats. Om du hittar skillnader har du två alternativ:

  • Du kan skapa ett nytt problem på lagringsplatsen, där vi spårar begäranden om ytterligare programvara. Att kontakta supporten kan inte hjälpa dig att konfigurera ny programvara på Microsoft-värdbaserade agenter.

  • Du kan använda lokalt installerade agenter eller skalningsuppsättningsagenter. Med dessa agenter har du fullständig kontroll över de avbildningar som används för att köra dina pipelines.

Mitt bygge lyckas på min lokala dator, men misslyckas på Microsoft-värdbaserade agenter. Vad ska jag göra?

Din lokala dator har förmodligen alla rätt beroenden installerade på den, medan samma beroenden, verktyg och programvara inte är installerade på Microsoft-värdbaserade agenter. Granska först noggrant listan över programvara som är installerad på Microsoft-värdbaserade agenter genom att följa länken till Inkluderad programvara i tabellen ovan. Jämför sedan med programvaran som är installerad på den lokala datorn. I vissa fall kan Microsoft-värdbaserade agenter ha de verktyg som du behöver (t.ex. Visual Studio), men alla nödvändiga valfria komponenter kanske inte har installerats. Om du hittar skillnader har du två alternativ:

  • Du kan skapa ett nytt problem på lagringsplatsen, där vi spårar begäranden om ytterligare programvara. Det här är ditt bästa val för att få ny programvara installerad. Att kontakta supporten hjälper dig inte att konfigurera ny programvara på Microsoft-värdbaserade agenter.

  • Du kan använda lokalt installerade agenter eller skalningsuppsättningsagenter. Med dessa agenter har du fullständig kontroll över de avbildningar som används för att köra dina pipelines.

Min pipeline misslyckas med felet "inget utrymme kvar på enheten".

Microsofts värdbaserade agenter har bara 10 GB tillgängligt diskutrymme för att köra jobbet. Det här utrymmet förbrukas när du checkar ut källkod, när du laddar ned paket, när du laddar ned Docker-avbildningar eller när du skapar mellanliggande filer. Tyvärr kan vi inte öka det lediga utrymmet på Microsoft-värdbaserade avbildningar. Du kan omstrukturera din pipeline så att den får plats i det här utrymmet. Du kan också överväga att använda lokalt installerade agenter eller skalningsuppsättningsagenter.

Min pipeline som körs på Microsoft-värdbaserade agenter kräver åtkomst till servrar i vårt företagsnätverk. Hur får vi en lista över IP-adresser som ska tillåtas i brandväggen?

Se avsnittet Agent-IP-intervall

Vår pipeline som körs på Microsoft-värdbaserade agenter kan inte matcha namnet på en server i vårt företagsnätverk. Hur kan vi åtgärda det här?

Om du refererar till servern med dess DNS-namn kontrollerar du att servern är offentligt tillgänglig på Internet via dess DNS-namn. Om du refererar till servern med dess IP-adress kontrollerar du att IP-adressen är offentligt tillgänglig på Internet. I båda fallen kontrollerar du att alla brandväggar mellan agenterna och företagets nätverk har agentens IP-intervall tillåtna .

Jag får ett SAS IP-auktoriseringsfel från ett Azure Storage-konto

Om du får en SAS-felkod beror det troligtvis på att IP-adressintervallen från De Microsoft-värdbaserade agenterna inte tillåts på grund av dina Azure Storage-regler. Det finns några lösningar:

  1. Hantera IP-nätverksreglerna för ditt Azure Storage-konto och lägg till IP-adressintervallen för dina värdbaserade agenter.
  2. I pipelinen använder du Azure CLI för att uppdatera nätverksregeluppsättningen för ditt Azure Storage-konto precis innan du kommer åt lagringen och återställer sedan den tidigare regeluppsättningen.
  3. Använd agenter med egen värd eller skalningsuppsättningsagenter.

Hur gör jag för att välja versioner av verktyg manuellt på den värdbaserade macOS-agenten?

Xamarin

Värdhanterad macOS-agent lagrar Xamarin SDK-versioner och associerade Mono-versioner som en uppsättning symlinks till Xamarin SDK-platser som är tillgängliga med en enda paket-symlink.

Om du vill välja en Xamarin SDK-version manuellt som ska användas på den värdbaserade macOS-agenten kör du följande bash-kommando före Xamarin-bygguppgiften som en del av bygget och anger den symlink till Xamarin-versionspaketet som du behöver.

/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"

Listan över alla tillgängliga Xamarin SDK-versioner och symlinks finns i agentdokumentationen:

Det här kommandot väljer inte monoversionen utöver Xamarin SDK. Om du vill välja en Mono-version manuellt kan du läsa anvisningarna nedan.

Om du använder en icke-standardversion av Xcode för att skapa dina Xamarin.iOS- eller Xamarin.Mac-appar bör du dessutom köra den här kommandoraden:

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"

Där $(xcodeRoot) = /Applications/Xcode_13.2.app

Xcode-versioner på den värdbaserade macOS-agentpoolen finns här för agenten macos-11 och här för agenten macos-12 .

Xcode

Om du använder Xcode-aktiviteten som ingår i Azure Pipelines och TFS kan du välja en version av Xcode i aktivitetens egenskaper. Annars kör du den här kommandoraden som en del av bygget för xcodebuild att manuellt ange den Xcode-version som ska användas i den värdbaserade macOS-agentpoolen och ersätta Xcode-versionsnumret 13.2 efter behov:

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_13.2.app/Contents/Developer"

Xcode-versioner på den värdbaserade macOS-agentpoolen finns här för agenten macos-11 och här för agenten macos-12 .

Det här kommandot fungerar inte för Xamarin-appar. Om du vill välja en Xcode-version manuellt för att skapa Xamarin-appar kan du läsa anvisningarna ovan.

Mono

Om du vill välja en Mono-version som ska användas i den värdbaserade macOS-agentpoolen kör du det här skriptet i varje jobb i din version före monoversionsaktiviteten och anger symlinken med den monoversion som krävs (en lista över alla tillgängliga symlinks finns i avsnittet Xamarin ovan):

SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"