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-Agentpool nicht mit lokalem TFS oder Azure DevOps Server verwenden. Bei diesen lokalen Versionen müssen Sie selbstgehostete Agents verwenden.
Wichtig
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 dazu, welche lokale Version 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 (d. h. jede Änderung, die ein Auftrag am Dateisystem des virtuellen Computers vornimmt, 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 der VM 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 testen.
Software
Der Azure Pipelines-Agentpool 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 |
macOS 13 Ventura | macOS-13 | macOS-13 |
Link |
macOS 12 Monterey | macOS-12 | macOS-latest ODERmacOS-12 |
Link |
macOS 11 Big Sur | macOS-11 | macOS-11 |
Link |
Das Standard-Agent-Image für klassische Buildpipelines ist Windows-2019, und das Standard-Agent-Image 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 in der Tabelle auf den Link Enthaltene Software klicken. Wenn Sie macOS-Images verwenden, können Sie manuell eine der Toolversionen auswählen. Siehe unten.
Neueste Updates
- Das macOS 13-Image ist verfügbar.
- Das macOS 10.15-Image wird bis zum 24.04.2023 vollständig nicht unterstützt.
- Ubuntu 18.04 wurde eingestellt
ubuntu-latest
Images verwendenubuntu-22.04
.- Allgemeine Verfügbarkeit von Ubuntu 22.04 für gehostete Azure Pipelines-Pools.
- Das Ubuntu 18.04-Image beginnt am 8.8.22 und wird am 01.04.2023 vollständig nicht unterstützt.
- Das macOS 10.15-Image wird am 31.05.22 eingestellt und wird am 1.12.2022 vollständig nicht mehr unterstützt.
windows-latest
Images verwendenwindows-2022
.macOS-latest
Images verwendenmacOS-11
.- Das gehostete Ubuntu 16.04-Image wurde im September 2021 entfernt.
- Das Image Windows Server 2016 mit Visual Studio 2017 ist veraltet und wird am 30. Juni 2022 eingestellt. Lesen Sie diesen Blogbeitrag zum Identifizieren von Pipelines mithilfe veralteter Images.
- Im Dezember 2021 haben wir das folgende von Azure Pipelines gehostete Image entfernt:
- macOS X Mojave 10.14 (
macOS-10.14
)
- macOS X Mojave 10.14 (
- Im März 2020 haben wir die folgenden von Azure Pipelines gehosteten Images entfernt:
- Windows Server 2012R2 mit Visual Studio 2015 (
vs2015-win2012r2
) - macOS X High Sierra 10.13 (
macOS-10.13
) - Windows Server Core 1803 (
win1803
)
- Windows Server 2012R2 mit Visual Studio 2015 (
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 gehostete Azure Pipelines-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 umgeleitet. Unter bestimmten Umständen werden möglicherweise noch die alten Poolnamen 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 (Versionshinweise vom 1. Juli 2019 – Sprint 154).
Wichtig
Um die Installation zusätzlicher Software auf von Microsoft gehosteten Agents anzufordern, erstellen Sie keine Feedbackanfrage zu diesem Dokument, und öffnen Sie kein Supportticket. Öffnen Sie stattdessen ein Problem in unserem Repository, in dem wir die Skripts verwalten, um verschiedene Bilder 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 Ihrem organization: https://dev.azure.com/{organization}/{project}/_settings/agentqueues
, und filtern Sie nach dem Namen des Bilds, der überprüft werden soll. Im folgenden Beispiel wird das vs2017-win2016
Bild überprüft.
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, wird für Pipelines standardmäßig der Azure Pipelines-Agentpool verwendet. 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-organization.
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-organization immer in den USA ausgeführt. Wenn Ihnen die Datenhoheit wichtig ist und Sich Ihr organization nicht in den USA befindet, sollten Sie keine macOS-Bilder 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 für instance den gehosteten Agents Zugriff über eine Firewall gewähren müssen, können Sie diesen Zugriff nach 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 organization ausgeführt. Jede Geografie enthält eine oder mehrere Regionen. Ihr Agent kann zwar in derselben Region wie Ihr organization 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 Ihr organization beispielsweise in der USA Geografie befindet, müssen Sie die IP-Adressbereiche für alle Regionen in dieser Geografischen Region 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
- Identifizieren Sie die Region für Ihre organization in den Organisationseinstellungen.
- Identifizieren Sie die Azure Geography-Region für die Region Ihres organization.
- 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. BAzureCloud.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.
- 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 Ihr organization in der Region "Brasilien, Süden" befindet, ist Ihre Kapazitätsfallbackgeografie USA.
Wenn sich Ihr organization 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 organization 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 einem einzelnen organization gewidmet, 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 zusätzliche Kapazitäten pro Parallelauftrag erwerben. Erworbene Parallelaufträge entfernen das monatliche Zeitlimit und ermöglichen es Ihnen, jeden Auftrag für bis zu 360 Minuten (6 Stunden) auszuführen. Von Microsoft gehostete parallele Aufträge kaufen.
- Wenn Sie eine neue Azure DevOps-organization 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 Arbeitsspeicher insgesamt 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.
Hinweis
Standardmäßig verwendet der Windows-Agent die Git-Version, die mit der Agent-Software gebündelt ist. Microsoft empfiehlt die Verwendung der Git-Version, die mit dem Agent gebündelt ist. Sie haben jedoch mehrere Optionen, um dieses Standardverhalten zu überschreiben und die Git-Version zu verwenden, die der Agentcomputer im Pfad installiert hat.
- Legen Sie eine Pipelinevariable mit dem
true
NamenSystem.PreferGitFromPath
in Ihren Pipelines fest. - Auf selbstgehosteten Agents können Sie eine Datei mit dem Namen .env im Stammverzeichnis des Agents erstellen und der Datei eine
System.PreferGitFromPath=true
Zeile hinzufügen. Weitere Informationen finden Sie unter Gewusst wie Festlegen verschiedener Umgebungsvariablen für jeden einzelnen Agent?
Um die von einer Pipeline verwendete Git-Version anzuzeigen, können Sie sich die Protokolle für einen checkout
Schritt in Ihrer Pipeline ansehen, wie im folgenden Beispiel gezeigt.
Syncing repository: PathFilter (Git)
Prepending Path environment variable with directory containing 'git.exe'.
git version
git version 2.26.2.windows.1
Wie wählt Microsoft die Software und die Versionen aus, die auf das Image eingefügt 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 status Badges ü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 einem organization Zugriff auf die von Microsoft gehosteten Agents. Ihr organization Administrator kann jedoch den Zugriff von von Microsoft gehosteten Agents auf ausgewählte Benutzer oder Projekte beschränken. Bitten Sie den Besitzer Ihrer Azure DevOps-organization, Ihnen die Berechtigung zur Verwendung eines von Microsoft gehosteten Agents zu erteilen. Weitere Informationen finden Sie unter Sicherheit des Agentpools.
Die Fertigstellung meiner Pipelines, die auf von Microsoft gehosteten Agents ausgeführt werden, nimmt mehr Zeit in Anspruch. Wie kann ich sie beschleunigen?
Wenn Ihre Pipeline in letzter Zeit langsamer geworden ist, suchen Sie auf der 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. Möglicherweise ist Ihr Repository während des Auscheckens größer geworden. Vielleicht laden Sie laden größere Artefakte hoch, oder Sie führen möglicherweise weitere Tests aus.
Wenn Sie nur eine Pipeline einrichten und die Leistung der 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 Computer 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-Adressbereiche 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:
- Verwalten Sie die IP-Netzwerkregeln für Ihr Azure Storage-Konto , und fügen Sie die IP-Adressbereiche für Ihre gehosteten Agents hinzu.
- 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.
- 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.
Falls 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 für den macos-11
Agent und hier für den macos-12
Agent.
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 für die Verwendung im gehosteten macOS-Agentpool manuell festlegen möchten, führen Sie vor der xcodebuild
Buildaufgabe diese Befehlszeile als Teil Ihres Builds aus, und ersetzen Sie dabei 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 für den macos-11
Agent und hier für den macos-12
Agent.
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"