Von Microsoft gehostete Agents

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Von Microsoft gehostete Agents sind nur mit Azure DevOps Services verfügbar, die in der Cloud gehostet werden. Microsoft-gehostete Agents oder der Azure Pipelines Agentpool können nicht mit lokalen TFS oder Azure DevOps Server verwendet werden. Mit diesen lokalen Versionen müssen Sie selbst gehostete Agents verwenden.

Wichtig

Select a version from Azure DevOps Content Version selector.

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, wie Sie herausfinden, welche lokale Version Sie verwenden, finden Sie unter Welche Plattform/Version verwende ich?

Wenn Sich Ihre Pipelines in Azure Pipelines befinden, haben Sie eine bequeme Option zum Ausführen Ihrer Aufträge mit einem von Microsoft gehosteten Agent. 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 ein Auftrag an das Dateisystem des virtuellen Computers vorgenommen wird, z. B. das Auschecken von Code, ist für den nächsten Auftrag nicht verfügbar). 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 ohne Gebühr ausprobieren.

Software

Der Azure Pipelines-Agentpool bietet mehrere virtuelle Computerimages, aus denen sie auswählen können, darunter eine vielzahl von Tools und Software.

Image Klassische Editor-Agent-Spezifikation YAML VM Image Label 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 Preview ubuntu-22.04 ubuntu-22.04 Link
Ubuntu 20.04 ubuntu-20.04 ubuntu-latest ODERubuntu-20.04 Link
Ubuntu 18.04 ubuntu-18.04 ubuntu-18.04 Link
macOS 12 Monterey Preview macOS-12 macOS-12 Link
macOS 11 Big Sur macOS-11 macOS-latest ODERmacOS-11 Link
macOS X Catalina 10.15 macOS-10.15 macOS-10.15 Link

Das Standard-Agent-Image für klassische Buildpipelinen ist Windows-2019, und das Standard-Agent-Image für YAML-Buildpipelinen 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 sehen, indem Sie den Link " Eingeschlossene Software " in der Tabelle auswählen. Wenn Sie macOS Bilder verwenden, können Sie manuell aus Toolversionen auswählen. Siehe unten.

Hinweis

windows-latest Workflows werden verwendet windows-2022.

macOS-latest Workflows werden verwendet macOS-11.

Das gehostete Ubuntu 16.04-Image wurde September 2021 entfernt.

Die Windows Server 2016 mit Visual Studio 2017-Bild wurde veraltet und wird am 30. Juni 2022 eingestellt. Lesen Sie diesen Blogbeitrag , wie Sie Pipelines mithilfe veralteter Bilder identifizieren.

Im Dezember 2021 haben wir das folgende Azure Pipelines gehostetes Bild entfernt:

  • macOS X Mojave 10.14 (macOS-10.14)

Im März 2020 haben wir die folgenden Azure Pipelines gehosteten Bilder entfernt:

  • Windows Server 2012R2 mit Visual Studio 2015 (vs2015-win2012r2)
  • macOS X High Sierra 10.13 (macOS-10.13)
  • Windows Server Core 1803 (win1803)

Kunden werden aufgefordert, zu neueren Versionen oder einem selbst gehosteten Agent zu migrieren.

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

Hinweis

Der Azure Pipelines gehostete Pool ersetzt die vorherigen gehosteten Pools mit Namen, die den entsprechenden Bildern zugeordnet sind. Alle Aufträge, die Sie in den vorherigen gehosteten Pools hatten, werden automatisch in das richtige Bild im neuen Azure Pipelines gehosteten Pool umgeleitet. Unter einigen Umständen werden möglicherweise noch die alten Poolnamen angezeigt, aber hinter den Kulissen werden die gehosteten Aufträge mit dem Azure Pipelines Pool ausgeführt. Weitere Informationen zu diesem Update finden Sie in den Anmerkungen zur Version des einzelnen gehosteten Pools vom 1. Juli 2019 – Sprint 154.

Wichtig

Wenn Sie zusätzliche Software anfordern möchten, die auf microsoft gehosteten Agents installiert werden soll, erstellen Sie keine Feedbackanfrage auf diesem Dokument, oder öffnen Sie ein Supportticket. Öffnen Sie stattdessen ein Problem in unserem Repository, bei dem wir die Skripts verwalten, um verschiedene Bilder zu generieren.

Verwenden eines von Microsoft gehosteten Agents

Wenn Sie keinen Pool angeben, werden Pipelines in YAML-Pipelines standardmäßig im Azure Pipelines Agentpool verwendet. Sie müssen einfach angeben, welches virtuelle Computerimage 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 Bild ausgeführt wird, stellen Sie sicher, dass Sie die Poolspezifikation auf Der Pipeline-, Phasen- und Auftragsebene überprüfen.

Vermeiden von hartcodierten Verweisen

Wenn Sie einen von Microsoft gehosteten Agent verwenden, verwenden Sie immer Variablen , um auf die Buildumgebung und Agentressourcen zu verweisen. Schreiben Sie z. B. den Laufwerkbuchstaben oder Ordner, der das Repository enthält, nicht fest. 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 virtuellen Azure-Computern mit einer Kern-CPU, 7 GB RAM und 14 GB SSD-Speicherplatz bereitgestellt. Diese virtuellen Computer befinden sich in derselben Geographie wie Ihre Azure DevOps Organisation.

Agents, die macOS Bilder ausführen, werden auf Mac-Spezialisten mit einer 3-Kern-CPU, 14 GB RAM und 14 GB SSD-Speicherplatz bereitgestellt. Diese Agents werden immer in den USA ausgeführt, unabhängig vom Standort Ihrer Azure DevOps Organisation. Wenn Die Datenhoheit für Sie wichtig ist und wenn Ihre Organisation sich nicht in den USA befindet, sollten Sie macOS Bilder nicht verwenden. Weitere Informationen

Alle diese Computer verfügen über mindestens 10 GB freien Speicherplatz für Ihre Pipelines, die ausgeführt werden sollen. Dieser freie Speicherplatz wird verbraucht, wenn Ihre Pipeline Quellcode auscheckt, Pakete herunterlädt, Docker-Images abruft oder Zwischendateien generiert.

Wichtig

Wir können Anforderungen nicht berücksichtigen, um Speicherplatz auf microsoft gehosteten Agents zu erhöhen oder leistungsfähigere Computer bereitzustellen. Wenn die Spezifikationen von microsoft gehosteten Agents ihre Anforderungen nicht erfüllen, sollten Sie selbst gehostete Agents oder Skalierungssatz-Agents berücksichtigen.

Netzwerk

In einigen Setups müssen Sie möglicherweise den Bereich der IP-Adressen kennen, in denen Agents bereitgestellt werden. Wenn Sie beispielsweise den gehosteten Agents Zugriff über eine Firewall gewähren müssen, möchten Sie diesen Zugriff möglicherweise durch die IP-Adresse einschränken. Da Azure DevOps das globale Azure-Netzwerk verwendet, variieren IP-Bereiche im Laufe der Zeit. Wir veröffentlichen eine wöchentliche JSON-Datei mit IP-Bereichen für Azure-Rechenzentren, die nach Region ausgebrochen sind. Diese Datei wird wöchentlich mit neuen geplanten IP-Bereichen aktualisiert. Die neuen IP-Bereiche werden in der folgenden Woche wirksam. Wir empfehlen, dass Sie häufig (mindestens einmal jede Woche) zurückchecken, um sicherzustellen, dass Sie eine aktuelle Liste beibehalten. Wenn Agentaufträge beginnen, fehlzuschlagen, ist ein wichtiger erster Problembehandlungsschritt, um sicherzustellen, dass Ihre Konfiguration der neuesten Liste der IP-Adressen entspricht. Die IP-Adressbereiche für die gehosteten Agents werden in der wöchentlichen Datei unter AzureCloud.<region>, z AzureCloud.westus . B. für die West-US-Region, aufgeführt.

Ihre gehosteten Agents werden in derselben Azure-Geographie wie Ihre Organisation ausgeführt. Jede Geographie enthält mindestens eine Region. Während Ihr Agent möglicherweise in derselben Region wie Ihre Organisation ausgeführt wird, ist dies 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 Geographie enthalten sind. Wenn sich Ihre Organisation beispielsweise in der USA Geographie befindet, müssen Sie die IP-Bereiche für alle Regionen in dieser Geographie verwenden.

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

Wichtig

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

So identifizieren Sie die möglichen IP-Bereiche für microsoft gehostete Agents

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

    Hinweis

    Da es keine API in den Azure-Verwaltungsbibliotheken für .NET gibt, um die Regionen für eine Geographie auflisten zu können, müssen Sie diese manuell auflisten, wie im folgenden Beispiel dargestellt.

  4. Rufen Sie die IP-Adressen für alle Regionen in Ihrer Geographie aus der wöchentlichen Datei ab. Wenn Ihre Region Brasilien Süd - oder Westeuropa ist, müssen Sie zusätzliche IP-Bereiche basierend auf Ihrer Fallback-Geographie einschließen, wie in der folgenden Notiz beschrieben.

Hinweis

Aufgrund von Kapazitätsbeschränkungen können einige Organisationen in den Regionen Brasilien Süd - oder Westeuropa gelegentlich ihre gehosteten Agenten außerhalb ihrer erwarteten Geographie sehen. In diesen Fällen müssen zusätzlich zu den IP-Bereichen für alle Regionen in Ihrer Geographie, wie im vorherigen Abschnitt beschrieben, zusätzliche IP-Bereiche für die Regionen in die Kapazitätsrückbruchgeografie einbezogen werden.

Wenn Ihre Organisation sich in der Region Brasilien Süd befindet, ist Ihre Kapazitäts-Fallback-Geographie USA.

Wenn Sich Ihre Organisation in der Region Westeuropa befindet, ist die Kapazitäts-Fallback-Geographie Frankreich.

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

Beispiel

Im folgenden Beispiel werden die gehosteten Agent-IP-Adressbereiche für eine Organisation in der West-US-Region aus der wöchentlichen Datei abgerufen. Da sich die West-US-Region in der USA Geographie befindet, sind die IP-Adressen für alle Regionen in der USA Geographie enthalten. 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

Microsoft gehostete Agents können nicht nach Diensttags aufgeführt werden. Wenn Sie versuchen, gehostete Agents Zugriff auf Ihre Ressourcen zu gewähren, müssen Sie die IP-Bereichsliste zulassen.

Sicherheit

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

  • Obwohl microsoft gehostete Agents im öffentlichen Azure-Netzwerk ausgeführt werden, werden sie nicht öffentlichen IP-Adressen zugewiesen. Externe Entitäten können also nicht auf microsoft gehostete Agents ausgerichtet werden.
  • Microsoft gehostete Agents werden in einzelnen VMs ausgeführt, die nach jeder Ausführung neu dargestellt werden. Jeder Agent ist für eine einzelne Organisation gewidmet, und jede VM hostt nur einen einzelnen Agent.
  • Es gibt mehrere Vorteile für die Ausführung Ihrer Pipeline auf microsoft gehosteten Agents aus Sicherheitsperspektive. Wenn Sie nicht vertrauenswürdigen Code in Ihrer Pipeline ausführen, z. B. Beiträge aus Forks, ist es sicherer, die Pipeline auf microsoft gehosteten Agents auszuführen, als auf selbst gehosteten Agents, die sich in Ihrem Unternehmensnetzwerk befinden.
  • Wenn eine Pipeline auf Ihre Unternehmensressourcen hinter einer Firewall zugreifen muss, müssen Sie den IP-Adressbereich für die Azure-Geographie zulassen. Dies kann Ihre Exposition erhöhen, da der Bereich der IP-Adressen eher groß ist und da Computer in diesem Bereich auch zu anderen Kunden gehören können. Die beste Möglichkeit, dies zu verhindern, besteht darin, den Zugriff auf interne Ressourcen zu vermeiden.
  • Gehostete Bilder entsprechen nicht den CIS-Hardening-Benchmarks. Um CIS-gefestigte Bilder zu verwenden, müssen Sie entweder selbst gehostete Agents oder Skalierungs-Set-Agents erstellen.

Funktionen und Einschränkungen

Microsoft gehostete Agents:

  • Verfügen Sie über die oben genannte Software. Sie können auch Software während Ihres Build- oder Releasevorgangs mithilfe von Toolinstallationsaufgaben hinzufügen.
    • Sie erhalten einen frisch dargestellten Agent für jeden Auftrag in Ihrer Pipeline.
  • Stellen Sie 10 GB Speicher für Ihre Quell- und Buildausgabe bereit.
  • Bereitstellen einer kostenlosen Ebene:
    • Öffentliches Projekt: 10 kostenlose von Microsoft gehostete parallele Aufträge, die jeweils bis zu 360 Minuten (6 Stunden) ausgeführt werden können, ohne Gesamtzeitlimit pro Monat. Wenden Sie sich an uns , um Ihre kostenlosen Stufenlimits zu erhöhen.
    • Privates Projekt: Ein kostenloser paralleler Auftrag, der jeweils bis zu 60 Minuten ausgeführt werden kann, bis Sie 1.800 Minuten (30 Stunden) pro Monat verwendet haben. Sie können zusätzliche Kapazität pro Parallelauftrag bezahlen. Kostenpflichtige parallele Aufträge entfernen das monatliche Zeitlimit und ermöglichen Es Ihnen, jeden Auftrag bis zu 360 Minuten (6 Stunden) auszuführen. Kaufen Sie von Microsoft gehostete parallele Aufträge.
    • Wenn Sie eine neue Azure DevOps Organisation erstellen, erhalten Sie diese kostenlosen Zuschüsse standardmäßig nicht. Um den kostenlosen Zuschuss für öffentliche oder private Projekte anzufordern, übermitteln Sie eine Anfrage.
  • Ausführen auf Microsoft Azure allgemeinen virtuellen Computern Standard_DS2_v2
  • Führen Sie als Administrator auf Windows und einem kennwortlosen sudo-Benutzer unter Linux aus
  • (nur Linux) Führen Sie Schritte in einem cgroup Schritt aus, der 6 GB physischen Arbeitsspeicher und 13 GB Gesamtspeicher bietet

Microsoft gehostete Agents bieten nicht:

  • Die Möglichkeit, eine Remoteverbindung herzustellen.
  • Die Möglichkeit, Artefakte an eine UNC-Dateifreigabe zu ablegen.
  • Die Möglichkeit, Computer direkt zu Ihrem Unternehmensnetzwerk zu verbinden.
  • Die Möglichkeit, größere oder leistungsfähigere Buildcomputer zu erhalten.
  • Die Möglichkeit, benutzerdefinierte Software vorab zu laden. Sie können Software während einer Pipelineausführung installieren, z. B. durch Toolinstallationsaufgaben oder in einem Skript.
  • Potenzielle Leistungsvorteile, die Sie möglicherweise mithilfe von selbst gehosteten Agents erhalten, die Builds schneller starten und ausführen können. Weitere Informationen
  • Die Möglichkeit, XAML-Builds auszuführen.

Wenn microsoft gehostete Agents Ihre Anforderungen nicht erfüllen, können Sie eigene selbst gehostete Agents bereitstellen oder Skalierungssatz-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 den Link "Eingeschlossene Software " in der Softwaretabelle auswählen.

Wie wählt Microsoft die Software und Versionen aus, um das Bild einzufügen?

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

Wann werden die Bilder aktualisiert?

Bilder werden in der Regel wöchentlich aktualisiert. Sie können die Statuszeichen überprüfen, die sich im Format 20200113.x befinden, in dem der erste Teil das Datum angibt, an dem das Bild aktualisiert wurde.

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

Sie können uns mitteilen, indem Sie ein GitHub Problem einreichen, indem Sie die Links "Enthaltene Software" in der Microsoft-gehosteten Agent-Tabelle auswählen.

Sie können auch einen selbst gehosteten Agent verwenden, der die genauen Versionen von Software enthält, die Sie benötigen. Weitere Informationen finden Sie unter Selbst gehostete Agents.

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

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

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

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

Standardmäßig verfügen alle Projektteilnehmer in einer Organisation über Zugriff auf die von Microsoft gehosteten Agents. Ihr Organisationsadministrator kann jedoch den Zugriff von microsoft gehosteten Agents einschränken, um Benutzer oder Projekte auszuwählen. Bitten Sie den Besitzer Ihrer Azure DevOps Organisation, Ihnen die Berechtigung zu erteilen, einen von Microsoft gehosteten Agent zu verwenden. Siehe Agentpoolsicherheit.

Meine Pipelines, die auf microsoft gehosteten Agents ausgeführt werden, nehmen mehr Zeit für den Abschluss. Wie kann ich sie beschleunigen?

Wenn Ihre Pipeline kürzlich langsamer geworden ist, überprüfen Sie unsere Statusseite für alle Ausgänge. Wir könnten Probleme mit unserem Dienst haben. Oder überprüfen Sie alle Änderungen, die Sie in Ihrem Anwendungscode oder der Pipeline vorgenommen haben. Ihre Repositorygröße während des Auscheckens ist möglicherweise erhöht, Sie können größere Artefakte hochladen oder weitere Tests ausführen.

Wenn Sie nur eine Pipeline einrichten und die Leistung von microsoft gehosteten Agents auf Ihren lokalen Computer oder einen selbst gehosteten Agent vergleichen, beachten Sie dann die Spezifikationen der Hardware, die wir zum Ausführen Ihrer Aufträge verwenden. Wir können Ihnen keine größeren oder leistungsstarken Maschinen bieten. Sie können die Verwendung von selbst gehosteten Agents oder Skalierungssatz-Agents berücksichtigen, wenn diese Leistung nicht zulässig ist.

Ich benötige weitere Agents. Was kann ich tun?

Alle Azure DevOps Organisationen werden mit mehreren kostenlosen parallelen Aufträgen für Open-Source-Projekte und einen kostenlosen parallelen Auftrag und begrenzten Minuten pro Monat für private Projekte bereitgestellt. 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 erfolgreich auf selbst gehosteten Agent, schlägt jedoch bei microsoft gehosteten Agents fehl.   Wie sollte ich vorgehen?

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

  • Sie können ein neues Problem im Repository erstellen, wo wir Anforderungen für zusätzliche Software nachverfolgen. Der Kontakt zum Support hilft Ihnen nicht bei der Einrichtung neuer Software auf microsoft gehosteten Agents.

  • Sie können selbst gehostete Agents oder Skalierungssatz-Agents verwenden. Mit diesen Agents sind Sie vollständig in der Kontrolle über die Bilder, die verwendet werden, um Ihre Pipelines auszuführen.

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

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

  • Sie können ein neues Problem im Repository erstellen, wo wir Anforderungen für zusätzliche Software nachverfolgen. Dies ist Ihre beste Wahl, um neue Software zu installieren. Der Kontakt zum Support hilft Ihnen nicht bei der Einrichtung neuer Software auf microsoft gehosteten Agents.

  • Sie können selbst gehostete Agents oder Skalierungssatz-Agents verwenden. Mit diesen Agents sind Sie vollständig in der Kontrolle über die Bilder, die verwendet werden, um Ihre Pipelines auszuführen.

Meine Pipeline schlägt mit dem Fehler fehl: "Kein Leerzeichen auf dem Gerät".

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 verwendet, wenn Sie Quellcode auschecken, wenn Sie Pakete herunterladen, wenn Sie Docker-Images herunterladen oder wenn Sie Zwischendateien erstellen. Leider können wir den kostenlosen Speicherplatz nicht erhöhen, der auf microsoft gehosteten Bildern verfügbar ist. Sie können Ihre Pipeline so umstrukturieren, dass sie in diesen Raum passen kann. Sie können auch selbst gehostete Agents oder Skalierungssatz-Agents verwenden.

Meine Pipeline, die auf Microsoft gehosteten Agents ausgeführt wird, erfordert Zugriff auf Server auf unserem Unternehmensnetzwerk. Wie erhalten wir eine Liste der IP-Adressen, die in unserer Firewall zulässig sind?

Weitere Informationen finden Sie im Abschnitt Agent-IP-Bereiche

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

Wenn Sie auf den Server über den DNS-Namen verweisen, stellen Sie sicher, dass Ihr Server über seinen DNS-Namen öffentlich zugänglich ist. Wenn Sie auf Ihren Server über ihre IP-Adresse verweisen, stellen Sie sicher, dass die IP-Adresse öffentlich im Internet zugänglich ist. Stellen Sie in beiden Fällen sicher, dass eine Firewall zwischen den Agents und Ihrem Unternehmensnetzwerk den Agent-IP-Bereich zulässig ist.

Ich erhalte einen SAS-IP-Autorisierungsfehler aus einem Azure Storage Konto

Wenn Sie einen SAS-Fehlercode erhalten, ist es wahrscheinlich, weil die IP-Adressbereiche aus den 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 Azure CLI, um das Netzwerkregelnet für Ihr Azure Storage Konto direkt vor dem Zugriff auf den Speicher zu aktualisieren und dann das vorherige Regelnet wiederherzustellen.
  3. Verwenden Sie selbst gehostete Agents oder Skalierungssatz-Agents.

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

Xamarin

Gehostete macOS Agent speichert Xamarin SDK-Versionen und die zugeordneten Mono-Versionen als Satz von Symlinks zu Xamarin SDK-Speicherorten, die von einem einzelnen Bundle-Symlink verfügbar sind.

Um eine Xamarin SDK-Version manuell auszuwählen, die auf dem gehosteten macOS-Agent verwendet werden soll, führen Sie den folgenden Bash-Befehl vor dem Xamarin-Buildvorgang als Teil Ihres Buildvorgangs aus, und geben Sie den Symlink zu Xamarin-Versionsbündel 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 Agentsdokumentation:

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

Wenn Sie eine nicht standardmäßige Version von Xcode zum Erstellen Ihrer Xamarin.iOS oder Xamarin.Mac-Apps verwenden, sollten Sie diese Befehlszeile zusätzlich 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 des gehosteten macOS Agentpools finden Sie hier.

Xcode

Wenn Sie die Xcode Aufgabe verwenden, die mit Azure Pipelines und TFS enthalten ist, können Sie eine Version von Xcode in den Eigenschaften dieser Aufgabe auswählen. Andernfalls müssen Sie die Xcode-Version manuell festlegen, die im gehosteten macOS-Agentpool verwendet werden soll, bevor Sie die xcodebuild Buildaufgabe ausführen, diese Befehlszeile als Teil Ihres Builds ausführen, indem Sie die Xcode Versionsnummer 13.2 nach Bedarf ersetzen:

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

Xcode Versionen des gehosteten macOS Agentpools 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 oben.

Mono

Um eine Mono-Version manuell auszuwählen, die im gehosteten macOS-Agentpool verwendet werden soll, führen Sie dieses Skript in jedem Auftrag Ihres Buildvorgangs vor Ihrer Mono-Buildaufgabe aus, und geben Sie den Symlink mit der erforderlichen Mono-Version an (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"

Videos