Von Microsoft gehostete Agents

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

Von Microsoft gehostete Agents sind nur mit Azure DevOps Services verfügbar, die in der Cloud gehostet wird. Sie können von Microsoft gehostete Agents oder den Azure Pipelines-Agent-Pool nicht mit lokalem TFS oder Azure DevOps Server verwenden. Bei diesen lokalen Versionen müssen Sie selbstgehostete Agents verwenden.

Wichtig

Wählen Sie eine Version aus der Azure DevOps-Inhalts-Versionsauswahl aus.

Um den für Ihre Plattform verfügbaren Inhalt anzuzeigen, stellen Sie sicher, dass Sie die richtige Version dieses Artikels aus der Versionsauswahl auswählen, die sich oberhalb des Inhaltsverzeichnisses befindet. Die Funktionsunterstützung variiert abhängig davon, ob Sie mit Azure DevOps Services oder einer lokalen Version von Azure DevOps Server arbeiten, die von Team Foundation Server (TFS) umbenannt wurde.
Informationen zur lokalen Version, die Sie verwenden, finden Sie unter Suchen ihrer Azure DevOps-Plattform und -Version.

Wenn sich Ihre Pipelines in Azure Pipelines befinden, haben Sie eine praktische Möglichkeit, Ihre Aufträge mit einem von Microsoft gehosteten Agent auszuführen. Bei von Microsoft gehosteten Agents werden Wartung und Upgrades für Sie erledigt. Jedes Mal, wenn Sie eine Pipeline ausführen, erhalten Sie einen neuen virtuellen Computer für jeden Auftrag in der Pipeline. Der virtuelle Computer wird nach einem Auftrag verworfen (was bedeutet, dass alle Änderungen, die ein Auftrag am Dateisystem des virtuellen Computers vornimmt, z. B. das Auschecken von Code, für den nächsten Auftrag nicht verfügbar sind). Von Microsoft gehostete Agents können Aufträge direkt auf dem virtuellen Computer oder in einem Container ausführen.

Azure Pipelines stellt einen vordefinierten Agentpool namens Azure Pipelines mit von Microsoft gehosteten Agents bereit.

Für viele Teams ist dies die einfachste Möglichkeit, Ihre Aufträge auszuführen. Sie können es zuerst ausprobieren und feststellen, ob es für Ihre Build- oder Bereitstellungsaufträge funktioniert. Wenn nicht, können Sie einen selbstgehosteten Agent verwenden.

Tipp

Sie können einen von Microsoft gehosteten Agent kostenlos ausprobieren.

Software

Der Azure Pipelines-Agent-Pool bietet mehrere VM-Images zur Auswahl, die jeweils eine breite Palette von Tools und Software enthalten.

Image Spezifikation des klassischen Editor-Agents YAML-VM-Imagebezeichnung Enthaltene Software
Windows Server 2022 mit Visual Studio 2022 windows-2022 windows-latest ODERwindows-2022 Link
Windows Server 2019 mit Visual Studio 2019 windows-2019 windows-2019 Link
Ubuntu 22.04 ubuntu-22.04 ubuntu-latest ODERubuntu-22.04 Link
Ubuntu 20.04 ubuntu-20.04 ubuntu-20.04 Link
Ubuntu 18.04 (ab dem 8.8.2022 veraltet und nicht mehr unterstützt vom 1.4.2023) ubuntu-18.04 ubuntu-18.04 Link
macOS 12 Monterey macOS-12 macOS-latest ODERmacOS-12 Link
macOS 11 Big Sur macOS-11 macOS-11 Link
macOS X Catalina 10.15 (veraltet ab dem 31.5.2022 und nicht unterstützt vom 1.4.2023) macOS-10.15 macOS-10.15 Link

Das Standard-Agentimage für klassische Buildpipelines ist Windows-2019, und das Standard-Agentimage für YAML-Buildpipelines ist ubuntu-latest. Weitere Informationen finden Sie unter Festlegen eines Pools in Ihrer Pipeline.

Sie können die installierte Software für jeden gehosteten Agent anzeigen, indem Sie den Link Enthaltene Software in der Tabelle auswählen. Wenn Sie macOS-Images verwenden, können Sie manuell eine Toolversion auswählen. Siehe unten.

Neueste Updates

Kunden werden empfohlen, zu neueren Versionen oder einem selbstgehosteten Agent zu migrieren.

Weitere Informationen und Anweisungen zum Aktualisieren Ihrer Pipelines, die diese Images verwenden, finden Sie unter Entfernen älterer Images in gehosteten Azure Pipelines-Pools.

Hinweis

Der von Azure Pipelines gehostete Pool ersetzt die zuvor gehosteten Pools mit Namen, die den entsprechenden Images zugeordnet sind. Alle Aufträge, die Sie in den vorherigen gehosteten Pools hatten, werden automatisch an das richtige Image im neuen gehosteten Azure Pipelines-Pool weitergeleitet. Unter umständen werden die alten Poolnamen weiterhin angezeigt, aber im Hintergrund werden die gehosteten Aufträge mithilfe des Azure Pipelines-Pools ausgeführt. Weitere Informationen zu diesem Update finden Sie in den Versionshinweisen zu single hosted pool aus den Versionshinweisen vom 1. Juli 2019 – Sprint 154.

Wichtig

Um die Installation zusätzlicher Software auf von Microsoft gehosteten Agents anzufordern, erstellen Sie keine Feedbackanfrage für dieses Dokument, und öffnen Sie kein Supportticket. Öffnen Sie stattdessen ein Problem in unserem Repository, in dem wir die Skripts verwalten, um verschiedene Images zu generieren.

Identifizieren von Pipelines mithilfe eines veralteten gehosteten Images

Um Pipelines zu identifizieren, die ein veraltetes Image verwenden, navigieren Sie zum folgenden Speicherort in Ihrer Organisation: https://dev.azure.com/{organization}/{project}/_settings/agentqueues, und filtern Sie nach dem zu überprüfenden Imagenamen. Im folgenden Beispiel wird das vs2017-win2016 Bild überprüft.

Screenshot: Filtern von Pipelines nach Bildname

Sie können auch den Auftragsverlauf für veraltete Bilder projektübergreifend abfragen, indem Sie das Skript verwenden, das sich hier befindet, wie im folgenden Beispiel gezeigt.

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

Verwenden eines von Microsoft gehosteten Agents

Wenn Sie in YAML-Pipelines keinen Pool angeben, werden Pipelines standardmäßig auf den Azure Pipelines-Agent-Pool festgelegt. Sie müssen lediglich angeben, welches VM-Image Sie verwenden möchten.

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

Hinweis

Die Spezifikation eines Pools kann auf mehreren Ebenen in einer YAML-Datei erfolgen. Wenn Sie feststellen, dass Ihre Pipeline nicht auf dem erwarteten Image ausgeführt wird, stellen Sie sicher, dass Sie die Poolspezifikation auf Pipeline-, Phasen- und Auftragsebene überprüfen.

Vermeiden hartcodierter Verweise

Wenn Sie einen von Microsoft gehosteten Agent verwenden, verwenden Sie immer Variablen , um auf die Buildumgebung und die Agentressourcen zu verweisen. Schreiben Sie z. B. den Laufwerkbuchstaben oder Ordner, der das Repository enthält, nicht hart. Das genaue Layout der gehosteten Agents kann ohne Warnung geändert werden.

Hardware

Von Microsoft gehostete Agents, die Windows- und Linux-Images ausführen, werden auf allgemeinen virtuellen Azure-Computern mit einer CPU mit 2 Kernen, 7 GB RAM und 14 GB SSD-Speicherplatz bereitgestellt. Diese virtuellen Computer befinden sich in derselben Region wie Ihre Azure DevOps-Organisation.

Agents, die macOS-Images ausführen, werden auf Mac-Profis mit einer CPU mit 3 Kernen, 14 GB RAM und 14 GB SSD-Speicherplatz bereitgestellt. Diese Agents werden unabhängig vom Standort Ihrer Azure DevOps-Organisation immer in den USA ausgeführt. Wenn Ihnen die Datenhoheit wichtig ist und Sich Ihre Organisation nicht in den USA befindet, sollten Sie keine macOS-Images verwenden. Weitere Informationen

Für alle diese Computer stehen mindestens 10 GB freier Speicherplatz zur Verfügung, damit Ihre Pipelines ausgeführt werden können. Dieser freie Speicherplatz wird verbraucht, wenn Ihre Pipeline Quellcode auscheckt, Pakete herunterlädt, Docker-Images abruft oder Zwischendateien generiert.

Wichtig

Anforderungen zur Erhöhung des Speicherplatzes auf von Microsoft gehosteten Agents oder zur Bereitstellung leistungsstärkerer Computer können nicht berücksichtigt werden. Wenn die Spezifikationen der von Microsoft gehosteten Agents Nicht Ihren Anforderungen entsprechen, sollten Sie selbstgehostete Agents oder Skalierungsgruppen-Agents in Betracht ziehen.

Netzwerk

In einigen Setups müssen Sie möglicherweise den IP-Adressbereich kennen, in dem Agents bereitgestellt werden. Wenn Sie beispielsweise den gehosteten Agents Zugriff über eine Firewall gewähren müssen, können Sie diesen Zugriff anhand der IP-Adresse einschränken. Da Azure DevOps das globale Azure-Netzwerk verwendet, variieren die IP-Bereiche im Laufe der Zeit. Wir veröffentlichen eine wöchentliche JSON-Datei , in der IP-Adressbereiche für Azure-Rechenzentren aufgelistet sind, aufgeschlüsselt nach Region. Diese Datei wird wöchentlich mit neuen geplanten IP-Adressbereichen aktualisiert. Die neuen IP-Adressbereiche werden in der folgenden Woche wirksam. Es wird empfohlen, dass Sie regelmäßig (mindestens einmal pro Woche) überprüfen, um sicherzustellen, dass Sie eine liste auf dem neuesten Stand halten. Wenn Agentaufträge fehlschlagen, besteht ein wichtiger erster Schritt zur Problembehandlung darin, sicherzustellen, dass Ihre Konfiguration mit der neuesten Liste der IP-Adressen übereinstimmt. Die IP-Adressbereiche für die gehosteten Agents sind in der wöchentlichen Datei unter AzureCloud.<region>aufgeführt, z AzureCloud.westus . B. für die Region USA, Westen.

Ihre gehosteten Agents werden in derselben Azure-Geografie wie Ihre Organisation ausgeführt. Jede Geografie enthält eine oder mehrere Regionen. Ihr Agent kann zwar in derselben Region wie Ihre Organisation ausgeführt werden, dies ist jedoch nicht garantiert. Um die vollständige Liste der möglichen IP-Bereiche für Ihren Agent zu erhalten, müssen Sie die IP-Bereiche aus allen Regionen verwenden, die in Ihrer geografischen Region enthalten sind. Wenn sich Ihre Organisation beispielsweise in der USA Geografie befindet, müssen Sie die IP-Adressbereiche für alle Regionen in dieser Geografie verwenden.

Um Ihre Geografie zu bestimmen, navigieren Sie zu https://dev.azure.com/<your_organization>/_settings/organizationOverview, rufen Sie Ihre Region ab, und suchen Sie die zugeordnete Geografie aus der Azure geography-Tabelle . Nachdem Sie Ihre Geografie identifiziert haben, verwenden Sie die IP-Adressbereiche aus der wöchentlichen Datei für alle Regionen in dieser Geografie.

Wichtig

Sie können keine privaten Verbindungen wie ExpressRoute oder VPN verwenden, um von Microsoft gehostete Agents mit Ihrem Unternehmensnetzwerk zu verbinden. Der Datenverkehr zwischen von Microsoft gehosteten Agents und Ihren Servern erfolgt über ein öffentliches Netzwerk.

So identifizieren Sie die möglichen IP-Adressbereiche für von Microsoft gehostete Agents

  1. Identifizieren Sie die Region für Ihre Organisation in den Organisationseinstellungen.
  2. Identifizieren Sie die Azure Geography-Region für die Region Ihrer Organisation.
  3. Ordnen Sie die Namen der Regionen in Ihrer Geografie dem Format zu, das in der wöchentlichen Datei verwendet wird, und folgen Sie dem Format von AzureCloud.<region>, z. B AzureCloud.westus. . Sie können die Namen der Regionen aus der Azure Geography-Liste dem format zuordnen, das in der wöchentlichen Datei verwendet wird, indem Sie die Regionsnamen überprüfen, die in den Azure-Verwaltungsbibliotheken für .NET an den Konstruktor der Regionen übergeben werden, die im Quellcode für die Region-Klasse definiert sind.

    Hinweis

    Da es in den Azure-Verwaltungsbibliotheken für .NET keine API zum Auflisten der Regionen für eine Geografie gibt, müssen Sie sie manuell auflisten, wie im folgenden Beispiel gezeigt.

  4. Rufen Sie die IP-Adressen für alle Regionen in Ihrer Geografie aus der wöchentlichen Datei ab. Wenn Ihre Region "Brasilien, Süden " oder "Europa, Westen" lautet, müssen Sie zusätzliche IP-Adressbereiche basierend auf Ihrer Fallbackgeografie einschließen, wie im folgenden Hinweis beschrieben.

Hinweis

Aufgrund von Kapazitätsbeschränkungen können einige Organisationen in den Regionen Brasilien, Süden oder Europa, Westen gelegentlich ihre gehosteten Agents sehen, die sich außerhalb ihrer erwarteten Geografischen Region befinden. In diesen Fällen müssen zusätzlich zum Einschließen der IP-Bereiche für alle Regionen in Ihrer Geografischen Region, wie im vorherigen Abschnitt beschrieben, zusätzliche IP-Bereiche für die Regionen in der Kapazitätsfallbackgeografie eingeschlossen werden.

Wenn sich Ihre Organisation in der Region "Brasilien, Süden" befindet, ist Ihre Kapazitätsfallbackgeografie USA.

Wenn sich Ihre Organisation in der Region "Europa, Westen " befindet, lautet die Region "Kapazitätsfallback " Frankreich.

Unsere Mac-IP-Adressbereiche sind in den oben genannten Azure-IP-Adressen nicht enthalten, da sie in der macOS-Cloud von GitHub gehostet werden. IP-Adressbereiche können mithilfe der GitHub-Metadaten-API mithilfe der hier angegebenen Anweisungen abgerufen werden.

Beispiel

Im folgenden Beispiel werden die IP-Adressbereiche des gehosteten Agents für eine Organisation in der Region "USA, Westen" aus der wöchentlichen Datei abgerufen. Da sich die Region USA, Westen im USA Geografie befindet, werden die IP-Adressen für alle Regionen in der USA Geografie eingeschlossen. In diesem Beispiel werden die IP-Adressen in die Konsole geschrieben.

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_20210823.json";

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

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

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

                var ipList =
                    from v in values
                    where (string)v["name"] == azureCloudRegion
                    select v["properties"]["addressPrefixes"];

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

Diensttags

Von Microsoft gehostete Agents können nicht nach Diensttags aufgelistet werden. Wenn Sie versuchen, gehosteten Agents Zugriff auf Ihre Ressourcen zu gewähren, müssen Sie die Ip-Bereichsliste zulassen-Methode befolgen.

Sicherheit

Von Microsoft gehostete Agents werden auf einer sicheren Azure-Plattform ausgeführt. Sie müssen jedoch die folgenden Sicherheitsüberlegungen beachten.

  • Obwohl von Microsoft gehostete Agents im öffentlichen Azure-Netzwerk ausgeführt werden, werden ihnen keine öffentlichen IP-Adressen zugewiesen. Daher können externe Entitäten keine von Microsoft gehosteten Agents als Ziel verwenden.
  • Von Microsoft gehostete Agents werden auf einzelnen VMs ausgeführt, die nach jeder Ausführung neu imageiert werden. Jeder Agent ist einer einzelnen Organisation zugeordnet, und jeder virtuelle Computer hostet nur einen einzelnen Agent.
  • Aus Sicherheitssicht bietet die Ausführung Ihrer Pipeline auf von Microsoft gehosteten Agents mehrere Vorteile. Wenn Sie nicht vertrauenswürdigen Code in Ihrer Pipeline ausführen, z. B. Beiträge von Forks, ist es sicherer, die Pipeline auf von Microsoft gehosteten Agents auszuführen als auf selbstgehosteten Agents, die sich in Ihrem Unternehmensnetzwerk befinden.
  • Wenn eine Pipeline hinter einer Firewall auf Ihre Unternehmensressourcen zugreifen muss, müssen Sie den IP-Adressbereich für die Azure-Geografie zulassen. Dies kann Ihre Exposition erhöhen, da der Bereich der IP-Adressen ziemlich groß ist und Computer in diesem Bereich auch anderen Kunden gehören können. Die beste Möglichkeit, dies zu verhindern, besteht darin, den Zugriff auf interne Ressourcen zu vermeiden.
  • Gehostete Images entsprechen nicht den CIS-Härtungsbenchmarks. Um CIS-gehärtete Images verwenden zu können, müssen Sie entweder selbstgehostete Agents oder Skalierungsgruppen-Agents erstellen.

Funktionen und Einschränkungen

Von Microsoft gehostete Agents:

  • Verwenden Sie die oben genannte Software. Sie können software auch während des Build- oder Releasevorgangs mithilfe von Aufgaben des Toolinstallationsprogramms hinzufügen.
    • Sie erhalten einen neu abgebildeten Agent für jeden Auftrag in Ihrer Pipeline.
  • Stellen Sie 10 GB Speicher für Ihre Quell- und Buildausgaben bereit.
  • Stellen Sie einen kostenlosen Tarif bereit:
    • Öffentliches Projekt: 10 kostenlose von Microsoft gehostete parallele Aufträge, die jedes Mal bis zu 360 Minuten (6 Stunden) ausgeführt werden können, ohne dass die Gesamtdauer pro Monat begrenzt ist. Wenden Sie sich an uns , um Ihre Grenzwerte für den free-Tarif zu erhöhen.
    • Privates Projekt: Ein kostenloser paralleler Auftrag, der jedes Mal bis zu 60 Minuten ausgeführt werden kann, bis Sie 1.800 Minuten (30 Stunden) pro Monat verwendet haben. Sie können für zusätzliche Kapazität pro Parallelauftrag bezahlen. Bei kostenpflichtigen parallelen Aufträgen wird das monatliche Zeitlimit aufgehoben, sodass Sie jeden Auftrag bis zu 360 Minuten (6 Stunden) ausführen können. Von Microsoft gehostete parallele Aufträge kaufen.
    • Wenn Sie eine neue Azure DevOps-Organisation erstellen, erhalten Sie diese kostenlosen Zuweisungen standardmäßig nicht. Um die kostenlose Gewährung für öffentliche oder private Projekte anzufordern, senden Sie eine Anforderung.
  • Ausführen auf allgemeinen virtuellen Microsoft Azure-Computern Standard_DS2_v2
  • Ausführen als Administrator unter Windows und kennwortloser sudo-Benutzer unter Linux
  • (nur Linux) Führen Sie die Schritte in einem cgroup aus, das 6 GB physischen Arbeitsspeicher und 13 GB Gesamtarbeitsspeicher bietet.

Von Microsoft gehostete Agents bieten nicht:

  • Die Möglichkeit, eine Remoteverbindung herzustellen.
  • Die Möglichkeit, Artefakte auf einer UNC-Dateifreigabe zu löschen.
  • Die Möglichkeit, Computer direkt mit Ihrem Unternehmensnetzwerk zu verbinden.
  • Die Möglichkeit, größere oder leistungsstärkere Buildcomputer zu erhalten.
  • Die Möglichkeit, benutzerdefinierte Software vorab zu laden. Sie können Software während einer Pipelineausführung installieren, z. B. über Aufgaben des Toolinstallationsprogramms oder in einem Skript.
  • Potenzielle Leistungsvorteile, die Sie durch die Verwendung von selbstgehosteten Agents erhalten können, die Builds möglicherweise schneller starten und ausführen. Weitere Informationen
  • Die Möglichkeit, XAML-Builds auszuführen.

Wenn von Microsoft gehostete Agents Nicht Ihren Anforderungen entsprechen, können Sie Ihre eigenen selbstgehosteten Agents bereitstellen oder Skalierungsgruppen-Agents verwenden.

Häufig gestellte Fragen

Wie kann ich sehen, welche Software in einem Bild enthalten ist?

Sie können die installierte Software für jeden gehosteten Agent anzeigen, indem Sie in der Tabelle Software auf den Link Enthaltene Software klicken.

Wie wählt Microsoft die Software und die Versionen aus, die auf das Image gesetzt werden sollen?

Weitere Informationen zu den in den Images enthaltenen Softwareversionen finden Sie unter Richtlinien für die Installation.

Wann werden die Images aktualisiert?

Images werden in der Regel wöchentlich aktualisiert. Sie können die Statusschilder überprüfen, die in dem Format 20200113.x vorliegen, in dem der erste Teil das Datum angibt, an dem das Bild aktualisiert wurde.

Was kann ich tun, wenn die benötigte Software entfernt oder durch eine neuere Version ersetzt wird?

Sie können uns dies mitteilen, indem Sie ein GitHub-Problem einreichen, indem Sie in der Tabelle Verwenden eines von Microsoft gehosteten Agents die Links "Eingeschlossene Software" auswählen.

Sie können auch einen selbstgehosteten Agent verwenden, der genau die benötigten Softwareversionen enthält. Weitere Informationen finden Sie unter Selbstgehostete Agents.

Was geschieht, wenn ich einen größeren Computer mit mehr Verarbeitungsleistung, Arbeitsspeicher oder Speicherplatz benötige?

Wir können den Arbeitsspeicher, die Verarbeitungsleistung oder den Speicherplatz für von Microsoft gehostete Agents nicht erhöhen, aber Sie können selbstgehostete Agents oder Skalierungsgruppen-Agents verwenden, die auf Computern mit Ihren gewünschten Spezifikationen gehostet werden.

Ich kann keinen von Microsoft gehosteten Agent auswählen, und ich kann meinen Build oder meine Bereitstellung nicht in die Warteschlange stellen.   Wie sollte ich vorgehen?

Von Microsoft gehostete Agents sind nur in Azure Pipelines und nicht in TFS oder Azure DevOps Server verfügbar.

Standardmäßig haben alle Projektmitwirkenden in einer Organisation Zugriff auf die von Microsoft gehosteten Agents. Ihr Organisationsadministrator kann jedoch den Zugriff von von Microsoft gehosteten Agents auf ausgewählte Benutzer oder Projekte beschränken. Bitten Sie den Besitzer Ihrer Azure DevOps-Organisation, Ihnen die Berechtigung zur Verwendung eines von Microsoft gehosteten Agents zu erteilen. Weitere Informationen finden Sie unter Sicherheit des Agentpools.

Meine Pipelines, die auf von Microsoft gehosteten Agents ausgeführt werden, nehmen mehr Zeit in Anspruch. Wie kann ich sie beschleunigen?

Wenn Ihre Pipeline in letzter Zeit langsamer geworden ist, überprüfen Sie unsere Statusseite nach Ausfällen. Möglicherweise haben wir Probleme mit unserem Dienst. Oder überprüfen Sie alle Änderungen, die Sie im Anwendungscode oder in der Pipeline vorgenommen haben. Ihre Repositorygröße während des Auscheckens ist möglicherweise gestiegen, Sie laden möglicherweise größere Artefakte hoch, oder Sie führen möglicherweise weitere Tests aus.

Wenn Sie nur eine Pipeline einrichten und die Leistung von von Microsoft gehosteten Agents mit Ihrem lokalen Computer oder einem selbstgehosteten Agent vergleichen, beachten Sie die Spezifikationen der Hardware, die wir zum Ausführen Ihrer Aufträge verwenden. Wir sind nicht in der Lage, Ihnen größere oder leistungsfähige Maschinen zur Verfügung zu stellen. Sie können die Verwendung von selbstgehosteten Agents oder Skalierungsgruppen-Agents in Betracht ziehen, wenn diese Leistung nicht akzeptabel ist.

Ich benötige mehr Agenten. Was kann ich tun?

Alle Azure DevOps-Organisationen erhalten mehrere kostenlose parallele Aufträge für Open-Source-Projekte sowie einen kostenlosen parallelen Auftrag und monatlich begrenzte Minuten für private Projekte. Wenn Sie zusätzliche Minuten oder parallele Aufträge für Ihr Open-Source-Projekt benötigen, wenden Sie sich an den Support. Wenn Sie zusätzliche Minuten oder parallele Aufträge für Ihr privates Projekt benötigen, können Sie mehr kaufen.

Meine Pipeline ist auf einem selbstgehosteten Agent erfolgreich, schlägt jedoch bei von Microsoft gehosteten Agents fehl.   Wie sollte ich vorgehen?

In Ihrem selbstgehosteten Agent sind wahrscheinlich alle richtigen Abhängigkeiten installiert, während die gleichen Abhängigkeiten, Tools und Software nicht auf von Microsoft gehosteten Agents installiert sind. Überprüfen Sie zunächst sorgfältig die Liste der Software, die auf von Microsoft gehosteten Agents installiert ist, indem Sie dem Link zu Eingeschlossene Software in der obigen Tabelle folgen. Vergleichen Sie diese dann mit der Software, die auf Ihrem selbstgehosteten Agent installiert ist. In einigen Fällen verfügen von Microsoft gehostete Agents möglicherweise über die tools, die Sie benötigen (z. B. Visual Studio), aber möglicherweise wurden nicht alle erforderlichen optionalen Komponenten installiert. Wenn Sie Unterschiede finden, haben Sie zwei Möglichkeiten:

  • Sie können ein neues Problem im Repository erstellen, in dem Anforderungen für zusätzliche Software nachverfolgt werden. Wenn Sie sich an den Support wenden, können Sie keine neue Software auf von Microsoft gehosteten Agents einrichten.

  • Sie können selbstgehostete Agents oder Skalierungsgruppen-Agents verwenden. Mit diesen Agents haben Sie die vollständige Kontrolle über die Images, die zum Ausführen Ihrer Pipelines verwendet werden.

Mein Build ist auf meinem lokalen Computer erfolgreich, schlägt jedoch auf von Microsoft gehosteten Agents fehl.   Wie sollte ich vorgehen?

Auf Ihrem lokalen Computer sind wahrscheinlich alle richtigen Abhängigkeiten installiert, während dieselben Abhängigkeiten, Tools und Software nicht auf von Microsoft gehosteten Agents installiert sind. Überprüfen Sie zunächst sorgfältig die Liste der Software, die auf von Microsoft gehosteten Agents installiert ist, indem Sie dem Link zu Eingeschlossene Software in der obigen Tabelle folgen. Vergleichen Sie diese dann mit der Software, die auf Ihrem lokalen Computer installiert ist. In einigen Fällen verfügen von Microsoft gehostete Agents möglicherweise über die tools, die Sie benötigen (z. B. Visual Studio), aber möglicherweise wurden nicht alle erforderlichen optionalen Komponenten installiert. Wenn Sie Unterschiede finden, haben Sie zwei Möglichkeiten:

  • Sie können ein neues Problem im Repository erstellen, in dem Anforderungen für zusätzliche Software nachverfolgt werden. Dies ist ihre beste Wahl, um neue Software zu installieren. Wenn Sie sich an den Support wenden, können Sie keine neue Software auf von Microsoft gehosteten Agents einrichten.

  • Sie können selbstgehostete Agents oder Skalierungsgruppen-Agents verwenden. Mit diesen Agents haben Sie die vollständige Kontrolle über die Images, die zum Ausführen Ihrer Pipelines verwendet werden.

Meine Pipeline schlägt mit dem Fehler "kein Speicherplatz auf dem Gerät" fehl.

Von Microsoft gehostete Agents haben nur 10 GB Speicherplatz auf dem Datenträger für die Ausführung Ihres Auftrags zur Verfügung. Dieser Speicherplatz wird beim Auschecken des Quellcodes, beim Herunterladen von Paketen, beim Herunterladen von Docker-Images oder beim Erstellen von Zwischendateien belegt. Leider können wir den verfügbaren freien Speicherplatz für von Microsoft gehostete Images nicht erhöhen. Sie können Ihre Pipeline so umstrukturieren, dass sie in diesen Bereich passt. Oder Sie können die Verwendung von selbstgehosteten Agents oder Skalierungsgruppen-Agents in Betracht ziehen.

Meine Pipeline, die auf von Microsoft gehosteten Agents ausgeführt wird, erfordert Zugriff auf Server in unserem Unternehmensnetzwerk. Wie erhalten wir eine Liste der IP-Adressen, die in unserer Firewall zugelassen werden sollen?

Weitere Informationen finden Sie im Abschnitt Agent-IP-Bereiche.

Unsere Pipeline, die auf von Microsoft gehosteten Agents ausgeführt wird, kann den Namen eines Servers in unserem Unternehmensnetzwerk nicht auflösen. Wie können wir dies beheben?

Wenn Sie mit seinem DNS-Namen auf den Server verweisen, stellen Sie sicher, dass Ihr Server über seinen DNS-Namen öffentlich im Internet zugänglich ist. Wenn Sie über die IP-Adresse auf Ihren Server verweisen, stellen Sie sicher, dass die IP-Adresse im Internet öffentlich zugänglich ist. Stellen Sie in beiden Fällen sicher, dass jede Firewall zwischen den Agents und Ihrem Unternehmensnetzwerk über die zulässigen Agent-IP-Bereiche verfügt .

Ich erhalte einen SAS-IP-Autorisierungsfehler von einem Azure Storage-Konto.

Wenn Sie einen SAS-Fehlercode erhalten, liegt dies höchstwahrscheinlich daran, dass die IP-Adressbereiche der von Microsoft gehosteten Agents aufgrund Ihrer Azure Storage-Regeln nicht zulässig sind. Es gibt einige Problemumgehungen:

  1. Verwalten Sie die IP-Netzwerkregeln für Ihr Azure Storage-Konto , und fügen Sie die IP-Adressbereiche für Ihre gehosteten Agents hinzu.
  2. Verwenden Sie in Ihrer Pipeline die Azure CLI, um den Netzwerkregelsatz für Ihr Azure Storage-Konto direkt vor dem Zugriff auf den Speicher zu aktualisieren, und stellen Sie dann den vorherigen Regelsatz wieder her.
  3. Verwenden Sie selbstgehostete Agents oder Skalierungsgruppen-Agents.

Wie kann ich Versionen von Tools im gehosteten macOS-Agent manuell auswählen?

Xamarin

Der gehostete macOS-Agent speichert Xamarin SDK-Versionen und die zugehörigen Mono-Versionen als eine Reihe von Symlinks zu Xamarin SDK-Speicherorten, die von einem einzelnen Symlink-Bundle verfügbar sind.

Um manuell eine Xamarin SDK-Version auszuwählen, die im gehosteten macOS-Agent verwendet werden soll, führen Sie den folgenden bash-Befehl vor Ihrer Xamarin-Buildaufgabe als Teil Ihres Builds aus, und geben Sie dabei den symlink zu Xamarin-Versionspaket an, das Sie benötigen.

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

Die Liste aller verfügbaren Xamarin SDK-Versionen und Symlinks finden Sie in der Dokumentation zu Agents:

Dieser Befehl wählt nicht die Mono-Version über das Xamarin SDK hinaus aus. Informationen zum manuellen Auswählen einer Mono-Version finden Sie in den folgenden Anweisungen.

Wenn Sie eine nicht standardmäßige Version von Xcode zum Erstellen Ihrer Xamarin.iOS- oder Xamarin.Mac-Apps verwenden, sollten Sie zusätzlich diese Befehlszeile ausführen:

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

Wo $(xcodeRoot) = /Applications/Xcode_13.2.app

Xcode-Versionen im gehosteten macOS-Agentpool finden Sie hier.

Xcode

Wenn Sie den Xcode-Task verwenden, der in Azure Pipelines und TFS enthalten ist, können Sie in den Eigenschaften dieser Aufgabe eine Version von Xcode auswählen. Wenn Sie andernfalls die Xcode-Version manuell festlegen möchten, die im gehosteten macOS-Agentpool verwendet werden soll, führen Sie vor dem xcodebuild Buildtask diese Befehlszeile als Teil Ihres Builds aus, und ersetzen Sie bei Bedarf die Xcode-Versionsnummer 13.2:

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

Xcode-Versionen im gehosteten macOS-Agentpool finden Sie hier.

Dieser Befehl funktioniert nicht für Xamarin-Apps. Informationen zum manuellen Auswählen einer Xcode-Version zum Erstellen von Xamarin-Apps finden Sie in den obigen Anweisungen.

Mono

Um manuell eine Mono-Version auszuwählen, die im gehosteten macOS-Agentpool verwendet werden soll, führen Sie dieses Skript in jedem Auftrag Ihres Builds vor der Mono-Buildaufgabe aus. Geben Sie dabei den symlink mit der erforderlichen Mono-Version an (eine Liste aller verfügbaren Symlinks finden Sie oben im Abschnitt Xamarin ):

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"