Azure Pipelines-Agents

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

Hinweis

In Microsoft Team Foundation Server (TFS) 2018 und früheren Versionen werden Build- und Release-Pipelines als Definitionen bezeichnet, Ausführungen werden als Builds bezeichnet, Dienstverbindungen werden als Dienstendpunkte bezeichnet, Stages werden als Umgebungen bezeichnet und Aufträge werden als Phasen bezeichnet.

Um Ihren Code zu erstellen oder Ihre Software mithilfe von Azure Pipelines bereitzustellen, benötigen Sie mindestens einen Agent. Wenn Sie mehr Code und Personen hinzufügen, werden Sie letztendlich mehr benötigen.

Wenn Ihre Pipeline ausgeführt wird, beginnt das System einen oder mehrere Aufträge. Ein Agent ist die Computerinfrastruktur mit installierter Agentsoftware, die jeweils einen Auftrag ausführt.

Aufträge können direkt auf dem Hostcomputer des Agents oder in einem Container ausgeführt werden.

Von Microsoft gehostete Agents

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 bietet einen vordefinierten Agentpool namens Azure Pipelines mit von Microsoft gehosteten Agents.

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.

Erfahren Sie mehr über von Microsoft gehostete Agents.

Selbstgehostete Agents

Ein Agent, den Sie selbst zum Ausführen von Aufträgen einrichten und verwalten, ist ein selbst gehosteter Agent. Sie können selbst gehostete Agents in Azure Pipelines oder Azure DevOps Server, früher Team Foundation Server (TFS) genannt, verwenden. Selbstgehostete Agents bieten Ihnen mehr Kontrolle über die Installation abhängiger Software, die für Ihre Builds und Bereitstellungen erforderlich ist. Außerdem bleiben Caches auf Computerebene und Konfiguration von Ausführung bis zur Ausführung erhalten, wodurch die Geschwindigkeit erhöht werden kann.

Hinweis

Obwohl mehrere Agents pro Computer installiert werden können, empfehlen wir dringend, nur einen Agent pro Computer zu installieren. Die Installation von zwei oder mehr Agents kann sich negativ auf die Leistung und das Ergebnis Ihrer Pipelines auswirken.

Tipp

Bevor Sie einen selbst gehosteten Agent installieren, sollten Sie sehen, ob ein von Microsoft gehosteter Agentpool für Sie funktioniert. In vielen Fällen ist dies die einfachste Möglichkeit, loszugehen. Probieren Sie es aus.

Sie können den Agent auf Linux-, macOS- oder Windows-Computern installieren. Sie können einen Agent auch in einem Docker-Container installieren. Weitere Informationen zum Installieren eines selbstgehosteter Agents finden Sie unter:

Hinweis

Auf macOS müssen Sie das spezielle Attribut im Downloadarchiv löschen, um zu verhindern, dass Gatekeeper-Schutz für jede Assembly in der Tar-Datei angezeigt wird, wenn ./config.sh sie ausgeführt wird. Der folgende Befehl löscht das erweiterte Attribut in der Datei:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Nachdem Sie den Agent auf einem Computer installiert haben, können Sie jede andere Software auf diesem Computer installieren, die für Ihre Aufträge erforderlich ist.

Hinweis

Agents sind weit abwärtskompatibel. Jede Version des Agents sollte mit jeder Azure DevOps-Version kompatibel sein, solange Azure DevOps keine höhere Version des Agents verlangt.

Wir unterstützen nur die neueste Version des Agents, da dies die einzige Version ist, die garantiert, dass alle aktuellen Patches und Fehlerkorrekturen vorhanden sind.

Agents für Azure-VM-Skalierungsgruppen

Agents für Azure-VM-Skalierungsgruppen sind eine Form von selbstgehosteten Agents, die automatisch skaliert werden können, um Ihre Anforderungen zu erfüllen. Diese Flexibilität verringert die Notwendigkeit, jederzeit dedizierte Agents auszuführen. Im Gegensatz zu von Microsoft gehosteten Agents können Sie Größe und Image von Computern, auf denen Agents ausgeführt werden, flexibel bestimmen.

Sie geben eine VM-Skalierungsgruppe, mehrere Agents, die im Standbymodus bleiben, eine maximale Anzahl virtueller Computer in der Skalierungsgruppe an, und Azure Pipelines verwaltet die Skalierung Ihrer Agents automatisch.

Weitere Informationen finden Sie unter Azure Virtual Machine Scale Sets-Agents.

Parallelaufträge

Parallele Aufträge stellen die Anzahl der Aufträge dar, die Sie gleichzeitig in Ihrer Organisation ausführen können. Wenn Ihre Organisation über einen einzelnen parallelen Auftrag verfügt, können Sie einen einzelnen Auftrag gleichzeitig in Ihrer Organisation ausführen, wobei alle zusätzlichen gleichzeitigen Aufträge in die Warteschlange gestellt werden, bis der erste Auftrag abgeschlossen ist. Um zwei Aufträge gleichzeitig auszuführen, benötigen Sie zwei parallele Aufträge. In Azure-Pipelines können Sie parallele Aufträge in der von Microsoft gehosteten Infrastruktur oder in Ihrer eigenen (selbst gehosteten) Infrastruktur ausführen.

Microsoft stellt standardmäßig eine kostenlose Dienstebene in jeder Organisation bereit, die mindestens einen parallelen Auftrag enthält. Je nach Anzahl der gleichzeitigen Pipelines, die Sie ausführen müssen, benötigen Sie möglicherweise mehr parallele Aufträge, um mehrere von Microsoft gehostete oder selbst gehostete Agents gleichzeitig zu verwenden. Weitere Informationen zu parallelen Aufträgen und verschiedenen kostenlosen Dienststufen finden Sie unter Parallelaufträge in Azure Pipelines.

Möglicherweise benötigen Sie parallelere Aufträge, um mehrere Agents gleichzeitig zu verwenden:

Wichtig

Ab Azure DevOps Server 2019 müssen Sie nicht für selbst gehostete gleichzeitige Aufträge in Versionen bezahlen. Sie sind nur durch die Anzahl der von Ihnen erstellten Agents begrenzt.

Funktionen

Jeder selbst gehostete Agent verfügt über eine Reihe von Funktionen, die angeben, was er tun kann. Funktionen sind Namenswertpaare, die entweder automatisch von der Agentsoftware erkannt werden, in diesem Fall werden sie als Systemfunktionen bezeichnet, oder diejenigen, die Sie definieren, in diesem Fall werden sie als Benutzerfunktionen bezeichnet.

Die Agentsoftware bestimmt automatisch verschiedene Systemfunktionen, z. B. den Namen des Computers, den Typ des Betriebssystems und Versionen bestimmter auf dem Computer installierter Software. Außerdem werden umgebungsvariablen, die auf dem Computer definiert sind, automatisch in der Liste der Systemfunktionen angezeigt.

Hinweis

Das Speichern von Umgebungsvariablen als Funktionen bedeutet, dass beim Ausführen eines Agents die gespeicherten Funktionswerte verwendet werden, um die Umgebungsvariablen festzulegen. Außerdem werden alle Änderungen an Umgebungsvariablen, die ausgeführt werden, während der Agent ausgeführt wird, nicht von einer Aufgabe aufgenommen und verwendet. Wenn Sie über vertrauliche Umgebungsvariablen verfügen, die sich ändern und sie nicht als Funktionen gespeichert werden sollen, können Sie sie ignorieren, indem Sie die VSO_AGENT_IGNORE Umgebungsvariable festlegen, wobei eine durch Trennzeichen getrennte Liste von Variablen ignoriert werden soll. Ist beispielsweise eine kritische Variable, die Sie möglicherweise ignorieren möchten, PATH wenn Sie Software installieren.

Wenn Sie eine Pipeline erstellen, geben Sie bestimmte Anforderungen des Agents an. Das System sendet den Auftrag nur an Agents mit Funktionen, die den anforderungen entsprechen, die in der Pipeline angegeben sind. Daher können Sie Agentenfunktionen an bestimmte Agents weiterleiten.

Hinweis

Anforderungen und Funktionen sind für die Verwendung mit selbst gehosteten Agents konzipiert, sodass Aufträge mit einem Agent abgeglichen werden können, der die Anforderungen des Auftrags erfüllt. Wenn Sie microsoft-gehostete Agents verwenden, wählen Sie ein Bild für den Agent aus, der den Anforderungen des Auftrags entspricht. Obwohl es möglich ist, einem von Microsoft gehosteten Agent Funktionen hinzuzufügen, müssen Sie keine Funktionen mit von Microsoft gehosteten Agents verwenden.

Konfigurieren von Agentfunktionen

Sie können die Details eines Agents anzeigen, einschließlich seiner Versions- und Systemfunktionen, und seine Benutzerfunktionen verwalten, indem Sie zu Agent-Pools navigieren und die Registerkarte "Funktionen " für den gewünschten Agent auswählen.

  1. Navigieren Sie in Ihrem Webbrowser zu Agentpools:

    1. Wählen Sie Azure DevOps, Organisationseinstellungen aus.

      Wählen Sie

    2. Wählen Sie Agentpools aus.

      Registerkarte

    1. Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

      Wählen Sie

    2. Wählen Sie Agentpools aus.

      Wählen Sie Agentpools aus.

    1. Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

      Sammlungseinstellungen, 2019.

    2. Wählen Sie Agentpools aus.

      Wählen Sie Agentpools, 2019 aus.

    1. Navigieren Sie zu Ihrem Projekt, und wählen Sie "Einstellungen " (Zahnradsymbol) >Agentwarteschlangen aus.

      Wählen Sie

    2. Wählen Sie "Pools verwalten" aus.

      Wählen Sie

  2. Navigieren Sie zur Registerkarte "Funktionen":

    1. Wählen Sie auf der Registerkarte "Agentpools " den gewünschten Agentpool aus.

      Wählen Sie aus Agentpools den gewünschten Agentpool aus.

    2. Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

      Wählen Sie Agents aus, und wählen Sie den Agent aus.

    3. Wählen Sie die Registerkarte "Funktionen " aus.

      Wählen Sie die Registerkarte

      Hinweis

      Microsoft gehostete Agents zeigen keine Systemfunktionen an. Eine Liste der auf Microsoft gehosteten Agents installierten Software finden Sie unter Verwenden eines von Microsoft gehosteten Agents.

    1. Wählen Sie auf der Registerkarte "Agentpools " den gewünschten Pool aus.

      Wählen Sie den gewünschten Pool aus.

    2. Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

      Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

    3. Wählen Sie die Registerkarte "Funktionen " aus.

      Registerkarte

    1. Wählen Sie auf der Registerkarte "Agentpools " den gewünschten Pool aus.

      Wählen Sie die gewünschte Registerkarte 2019 aus.

    2. Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

      Wählen Sie den gewünschten Agent 2019 aus.

    3. Wählen Sie die Registerkarte "Funktionen " aus.

      Wählen Sie die Registerkarte

    Wählen Sie den gewünschten Agent aus, und wählen Sie die Registerkarte "Funktionen " aus.

    Registerkarte

  3. Um eine neue Funktion mit dem Agent zu registrieren, wählen Sie "Neue Funktion hinzufügen" aus.

Tipp

Nachdem Sie neue Software auf einem selbst gehosteten Agent installiert haben, müssen Sie den Agent neu starten, um die neue Funktion anzuzeigen. Weitere Informationen finden Sie unter Neustart von Windows-Agent, Neustart Linux-Agent und Neustart von Mac-Agent.

Kommunikation

Kommunikation mit Azure Pipelines

Kommunikation mit TFS

Der Agent kommuniziert mit Azure Pipelines oder Azure DevOps Server, um zu ermitteln, welcher Auftrag ausgeführt werden muss, und meldet die Protokolle und den Auftragsstatus. Diese Kommunikation wird immer vom Agent initiiert. Alle Nachrichten vom Agent an Azure Pipelines oder Azure DevOps Server werden über HTTP- HTTPS gesendet, je nachdem, wie Sie den Agent konfigurieren. Dieses Pullmodell ermöglicht die Konfiguration des Agents in verschiedenen Topologien, wie unten dargestellt.

Agenttopologien in lokalen Installationen.

Agenttopologien in Azure DevOps Services.

Nachfolgend finden Sie ein allgemeines Kommunikationsmuster zwischen dem Agent und Azure-Pipeline bzw. Azure DevOps Server.

  1. Der Benutzer registriert einen Agent mit Azure Pipelines oder Azure DevOps Server, indem er zu einem Agentpool hinzugefügt wird. Sie müssen ein Agentpooladministrator sein, um einen Agent in diesem Agentpool zu registrieren. Die Identität des Agentpooladministrators ist nur zum Zeitpunkt der Registrierung erforderlich, wird nicht auf dem Agent beibehalten und nicht in der weiteren Kommunikation zwischen Agent und Azure Pipelines oder Azure DevOps Server verwendet. Sobald die Registrierung abgeschlossen ist, lädt der Agent ein Listener OAuth-Token herunter und verwendet es, um die Auftragswarteschlange zu hören.

  2. Der Agent ermittelt laufend mit einer langen HTTP-Umfrage, ob eine neue Auftragsanforderung in der Auftragswarteschlange in Azure Pipelines/Azure DevOps Server für den Agent veröffentlicht wurde. Wenn ein Auftrag verfügbar ist, lädt der Agent den Auftrag sowie ein auftragsspezifisches OAuth-Token herunter. Dieses Token wird von Azure Pipelines/Azure DevOps Server für die in der Pipeline angegebene Bereichsidentität generiert. Dieses Token ist kurzlebig und wird vom Agent im Rahmen dieses Auftrags für den Zugriff auf Ressourcen (z. B. Quellcode) oder zum Ändern von Ressourcen (z. B. Hochladen von Testergebnissen) auf Azure Pipelines oder Azure DevOps Server verwendet.

  3. Nachdem der Auftrag durchgeführt wurde, verwirft der Agent das auftragsspezifische OAuth-Token und überprüft mithilfe des Listener-OAuth-Tokens, ob eine neue Auftragsanforderung vorliegt.

Die Nutzlast der Nachrichten, die zwischen dem Agent und Azure Pipelines/Azure DevOps Server ausgetauscht werden, werden mit asymmetrischer Verschlüsselung gesichert. Jeder Agent verfügt über ein Paar aus öffentlichem und privatem Schlüssel, und der öffentliche Schlüssel wird während der Registrierung mit dem Server ausgetauscht. Der Server verwendet den öffentlichen Schlüssel, um die Nutzlast des Auftrags zu verschlüsseln, bevor sie an den Agent gesendet wird. Der Agent entschlüsselt den Auftragsinhalt mit seinem privaten Schlüssel. Geheimnisse, die in Pipelines oder Variablengruppen gespeichert sind, werden beim Austausch mit dem Agent auf diese Weise gesichert.

Kommunikation für die Bereitstellung auf Zielservern

Wenn Sie den Agent verwenden, um Artefakte für eine Gruppe von Servern bereitzustellen, muss er über eine „Sichtverbindung“ mit diesen Servern verfügen. Die von Microsoft gehosteten Agentpools verfügen standardmäßig über Konnektivität mit Azure-Websites und -Servern, die in Azure ausgeführt werden.

Hinweis

Wenn Ihre Azure-Ressourcen in einem Azure-Virtual Network ausgeführt werden, können Sie die Agent-IP-Bereiche abrufen, in denen von Microsoft gehostete Agents bereitgestellt werden, damit Sie die Firewallregeln für Ihr Azure VNet konfigurieren können, um den Zugriff durch den Agent zu ermöglichen.

Wenn Ihre lokalen Umgebungen über keine Verbindung zu einem von Microsoft gehosteten Agentpool verfügen (was in der Regel aufgrund von dazwischenliegenden Firewalls der Fall ist), müssen Sie einen selbstgehosteten Agent auf lokalen Computern manuell konfigurieren. Die Agents müssen über Konnektivität mit den lokalen Zielumgebungen verfügen und Zugriff auf das Internet haben, um eine Verbindung mit Azure Pipelines oder Team Foundation Server herstellen zu können, wie im folgenden Schaubild dargestellt.

Agentkonnektivität für lokale Umgebungen

Authentifizierung

Um einen Agent zu registrieren, müssen Sie Mitglied der Administratorrolle im Agentpool sein. Die Identität des Agentpooladministrators ist nur zum Zeitpunkt der Registrierung erforderlich, wird nicht auf dem Agent beibehalten und nicht in der nachfolgenden Kommunikation zwischen Agent und Azure Pipelines oder Azure DevOps Server verwendet. Darüber hinaus müssen Sie ein lokaler Administrator auf dem Server sein, um den Agent zu konfigurieren.

Ihr Agent kann sich gegenüber Azure Pipelines mit einer der folgenden Methoden authentifizieren:

Ihr Agent kann sich mit einer der folgenden Methoden bei Azure DevOps Server oder TFS authentifizieren:

Persönliches Zugriffstoken (PAT):

Generieren und verwenden Sie einen PAT, um einen Agent mit Azure Pipelines oder TFS 2017 und neuer zu verbinden. PAT ist das einzige Schema, das mit Azure Pipelines funktioniert. Der PAT muss über agent Pools (read, manage) verfügen (für einen Bereitstellungsgruppen-Agent , die PAT muss über den Bereich "Deployment Group" (Lese-, Verwaltung) verfügen, und während ein einzelner PAT für die Registrierung mehrerer Agents verwendet werden kann, wird der PAT nur zum Zeitpunkt der Registrierung des Agents und nicht für nachfolgende Kommunikation verwendet. Weitere Informationen finden Sie im Abschnitt "Authentifizieren mit einem persönlichen Zugriffstoken (PAT)" in den Artikeln "Windows", "Linux" oder "macOS self-hosted agents".

Um ein PAT mit Azure DevOps Server zu verwenden, muss Ihr Server mit HTTPS konfiguriert werden. Siehe Websiteeinstellungen und Sicherheit.

Integriert

Verbinden Sie einen Windows-Agent mit TFS mithilfe der Anmeldeinformationen des angemeldeten Benutzers über ein Windows-Authentifizierung-Schema wie NTLM oder Kerberos.

Um diese Authentifizierungsmethode zu verwenden, müssen Sie zuerst Ihren TFS-Server konfigurieren.

  1. Melden Sie sich bei dem Computer an, auf dem Sie TFS ausführen.

  2. Starten Sie Internetinformationsdienste-Manager. Wählen Sie Ihre TFS-Website aus, und stellen Sie sicher, dass die Windows-Authentifizierung mit einem gültigen Anbieter wie NTLM oder Kerberos aktiviert ist.

IIS TFS-Windows-Authentifizierung

IIS TFS-Windows-Authentifizierung mit ntlm-Anbieter

Aushandeln

Stellen Sie eine Verbindung mit TFS als einem anderen Benutzer als dem angemeldeten Benutzer über ein Windows-Authentifizierung Schema wie NTLM oder Kerberos her.

Um diese Authentifizierungsmethode zu verwenden, müssen Sie zuerst Ihren TFS-Server konfigurieren.

  1. Melden Sie sich am Computer an, auf dem Sie TFS ausführen.

  2. Starten Sie Internetinformationsdienste-Manager. Wählen Sie Ihre TFS-Website aus, und stellen Sie sicher, dass die Windows-Authentifizierung mit dem Verhandlungsanbieter und mit einer anderen Methode wie NTLM oder Kerberos aktiviert ist.

IIS TFS-Windows-Authentifizierung

IIS TFS-Windows-Authentifizierung mit Verhandlungs- und ntlm-Anbieter

Alternativ

Herstellen einer Verbindung mit TFS mithilfe der Standardauthentifizierung. Um diese Methode zu verwenden, müssen Sie zuerst HTTPS auf TFS konfigurieren.

Um diese Authentifizierungsmethode zu verwenden, müssen Sie Ihren TFS-Server wie folgt konfigurieren:

  1. Melden Sie sich beim Computer an, auf dem Sie TFS ausführen.

  2. Konfigurieren sie die Standardauthentifizierung. Siehe Verwenden von Team tfx Foundation Server 2015 mithilfe der Standardauthentifizierung.

Interaktiv vs. Dienst

Sie können Ihren selbstgehosteten Agent entweder als Dienst oder als interaktiven Prozess ausführen. Nach dem Konfigurieren des Agents wird empfohlen, ihn zunächst im interaktiven Modus zu testen, um sicherzustellen, dass er funktioniert. Anschließend wird empfohlen, den Agent in einem der folgenden Modi auszuführen, damit er in der Produktionsumgebung zuverlässig ausgeführt wird. Diese Modi stellen auch sicher, dass der Agent automatisch gestartet wird, wenn der Computer neu gestartet wird.

  1. Als Dienst. Sie können den Dienst-Manager des Betriebssystems verwenden, um den Lebenszyklus des Agents zu verwalten. Darüber hinaus läuft das automatische Upgrade des Agents besser ab, wenn er als Dienst ausgeführt wird.

  2. Als interaktiver Prozess mit aktivierter automatischer Anmeldung. In einigen Fällen müssen Sie den Agent möglicherweise interaktiv für die Produktion ausführen, z. B. zum Ausführen von UI-Tests. Wenn der Agent für die Ausführung in diesem Modus konfiguriert ist, ist auch der Bildschirmschoner deaktiviert. Einige Domänenrichtlinien verhindern möglicherweise, dass Sie die automatische Anmeldung aktivieren oder den Bildschirmschoner deaktivieren. In solchen Fällen müssen Sie möglicherweise eine Ausnahme von der Domänenrichtlinie beantragen oder den Agent auf einem Arbeitsgruppencomputer ausführen, auf dem die Domänenrichtlinien nicht gelten.

    Hinweis

    Es gibt Sicherheitsrisiken, wenn Sie die automatische Anmeldung aktivieren oder den Bildschirmschoner deaktivieren, da Sie anderen Benutzern ermöglichen, auf dem Computer zu gehen und das Konto zu verwenden, das sich automatisch anmeldet. Wenn Sie den Agent so konfigurieren, dass er auf diese Weise ausgeführt wird, müssen Sie sicherstellen, dass der Computer physisch geschützt ist (sich beispielsweise in einer sicheren Einrichtung befindet). Wenn Sie Remotedesktop verwenden, um auf den Computer zuzugreifen, auf dem ein Agent mit automatischer Anmeldung ausgeführt wird, führt einfach zum Schließen des Remotedesktops dazu, dass der Computer gesperrt wird und alle Benutzeroberflächentests, die auf diesem Agent ausgeführt werden, möglicherweise fehlschlagen. Um dies zu vermeiden, verwenden Sie den Tscon-Befehl , um die Verbindung mit Remotedesktop zu trennen. Zum Beispiel:

    %windir%\System32\tscon.exe 1 /dest:console

Agent-Konto

Unabhängig davon, ob Sie einen Agent als Dienst oder interaktiv ausführen, können Sie auswählen, welches Computerkonto Sie zum Ausführen des Agents verwenden. (Beachten Sie, dass sich dies von den Anmeldeinformationen unterscheidet, die Sie beim Registrieren des Agents bei Azure Pipelines oder Azure DevOps Server verwenden.) Die Auswahl des Agentkontos hängt ausschließlich von den Anforderungen der Aufgaben ab, die in Ihren Build- und Bereitstellungsaufträgen ausgeführt werden.

Um beispielsweise Aufgaben auszuführen, die Windows-Authentifizierung für den Zugriff auf einen externen Dienst verwenden, müssen Sie den Agent mit einem Konto ausführen, das Zugriff auf diesen Dienst hat. Wenn Sie jedoch UI-Tests wie Selenium oder Coded UI-Tests ausführen, die einen Browser erfordern, wird der Browser im Kontext des Agentkontos gestartet.

Unter Windows sollten Sie ein Dienstkonto wie Netzwerkdienst oder lokaler Dienst verwenden. Diese Konten verfügen über eingeschränkte Berechtigungen und ihre Kennwörter laufen nicht ab, d. h. der Agent erfordert im Laufe der Zeit weniger Verwaltung.

Agent-Version und Upgrades

Wir aktualisieren die Agentsoftware alle paar Wochen in Azure-Pipelines. Wir geben die Agent-Version im Format {major}.{minor}an. Wenn die Agentversion 2.1beispielsweise lautet, ist die Hauptversion 2, und die Nebenversion ist 1.

Von Microsoft gehostete Agents werden immer auf dem neuesten Stand gehalten. Wenn die neuere Version des Agents nur in Nebenversion anders ist, können selbst gehostete Agents in der Regel automatisch aktualisiert werden (konfigurieren Sie diese Einstellung in Agentpools, wählen Sie Ihren Agent aus, Einstellungen – die Standardeinstellung ist aktiviert) von Azure Pipelines. Ein Upgrade wird angefordert, wenn ein Plattformfeature oder eine der aufgaben, die in der Pipeline verwendet werden, eine neuere Version des Agents erfordert.

Wenn Sie einen selbst gehosteten Agent interaktiv ausführen oder eine neuere Hauptversion des Agents verfügbar ist, müssen Sie die Agents möglicherweise manuell aktualisieren. Sie können dies ganz einfach über die Registerkarte "Agent-Pools " unter Ihrer Organisation ausführen. Ihre Pipelines werden erst ausgeführt, wenn sie auf einen kompatiblen Agent abzielen können.

So aktualisieren Sie selbst gehostete Agents

  1. Navigieren Sie zu Project-Einstellungen, Agentpools.

    Projekteinstellungen, Agentpools

  2. Wählen Sie Ihren Agentpool aus, und wählen Sie "Alle Agents aktualisieren" aus.

    Aktualisieren aller Agents

    Sie können Agents auch einzeln aktualisieren, indem Sie den Update-Agent aus dem Menü ... auswählen.

    Update-Agent

  3. Wählen Sie "Aktualisieren" aus, um das Update zu bestätigen.

    Aktualisieren aller Agents-Bestätigung

  4. Eine Updateanforderung wird für jeden Agent im Pool in die Warteschlange gestellt, der ausgeführt wird, wenn derzeit ausgeführte Aufträge abgeschlossen sind. Das Upgrade dauert in der Regel nur wenige Minuten – lange genug, um die neueste Version der Agentsoftware (ca. 200 MB) herunterzuladen, entzippen Sie ihn, und starten Sie den Agent mit der neuen Version neu. Sie können den Status Ihrer Agents auf der Registerkarte "Agents " überwachen.

Wir aktualisieren die Agentsoftware mit jedem Update in Azure DevOps Server und TFS. Wir geben die Agent-Version im Format {major}.{minor}an. Wenn die Agentversion 2.1beispielsweise lautet, ist die Hauptversion 2, und die Nebenversion ist 1.

Wenn Ihr Azure DevOps Server- oder TFS-Server über eine neuere Version des Agents verfügt und der neuere Agent nur in Nebenversion anders ist, kann er normalerweise automatisch aktualisiert werden. Ein Upgrade wird angefordert, wenn ein Plattformfeature oder eine der aufgaben, die in der Pipeline verwendet werden, eine neuere Version des Agents erfordert. Ab Azure DevOps Server 2019 müssen Sie nicht auf eine neue Serverversion warten. Sie können eine neue Version des Agents auf Ihre Anwendungsebene hochladen, und diese Version wird als Upgrade angeboten.

Wenn Sie den Agent interaktiv ausführen oder eine neuere Hauptversion des Agents verfügbar ist, müssen Sie die Agents möglicherweise manuell aktualisieren. Sie können dies ganz einfach über die Registerkarte "Agent-Pools " unter Ihrer Projektsammlung tun. Ihre Pipelines werden erst ausgeführt, wenn sie auf einen kompatiblen Agent abzielen können.

Sie können die Version eines Agents anzeigen, indem Sie zu Agent-Pools navigieren und die Registerkarte "Funktionen " für den gewünschten Agent auswählen, wie in "Agent-Funktionen konfigurieren" beschrieben.

Um agentupdate programmgesteuert auszulösen, können Sie die Agent-Update-API verwenden, wie in Abschnitt Wie kann ich Agent-Updates programmgesteuert für bestimmte Agentpools auslösen?.

Hinweis

Kopieren Sie für Server ohne Internetzugang die ZIP-Datei des Agents manuell, um C:\ProgramData\Microsoft\Azure DevOps\Agents\ sie als lokale Datei zu verwenden.

Häufig gestellte Fragen

Gewusst wie sicherstellen, dass ich über die neueste v2-Agent-Version verfügt?

  1. Navigieren Sie zur Registerkarte "Agent-Pools ":

    1. Wählen Sie Azure DevOps, Organisationseinstellungen aus.

      Wählen Sie

    2. Wählen Sie Agentpools aus.

      Registerkarte

    1. Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

      Wählen Sie

    2. Wählen Sie Agentpools aus.

      Wählen Sie Agentpools aus.

    1. Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

      Sammlungseinstellungen, 2019.

    2. Wählen Sie Agentpools aus.

      Wählen Sie Agent-Pools aus, 2019.

    1. Navigieren Sie zu Ihrem Projekt, und wählen Sie "Einstellungen " (Zahnradsymbol) >Agentwarteschlangen aus.

      Wählen Sie

    2. Wählen Sie "Pools verwalten" aus.

      Wählen Sie

  2. Klicken Sie auf den Pool, der den Agent enthält.

  3. Stellen Sie sicher, dass der Agent aktiviert ist.

  4. Navigieren Sie zur Registerkarte "Funktionen":

    1. Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Agentpool aus.

      Wählen Sie aus Agentpools den gewünschten Agentpool aus.

    2. Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

      Wählen Sie Agents aus, und wählen Sie den Agent aus.

    3. Wählen Sie die Registerkarte "Funktionen " aus.

      Wählen Sie die Registerkarte

      Hinweis

      Von Microsoft gehostete Agents zeigen keine Systemfunktionen an. Eine Liste der auf Microsoft gehosteten Agents installierten Software finden Sie unter Verwenden eines von Microsoft gehosteten Agents.

    1. Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Pool aus.

      Wählen Sie den gewünschten Pool aus.

    2. Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

      Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

    3. Wählen Sie die Registerkarte "Funktionen " aus.

      Registerkarte

    1. Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Pool aus.

      Wählen Sie die gewünschte Registerkarte 2019 aus.

    2. Wählen Sie Agents aus, und wählen Sie den gewünschten Agent aus.

      Wählen Sie den gewünschten Agent 2019 aus.

    3. Wählen Sie die Registerkarte "Funktionen " aus.

      Wählen Sie die Registerkarte

    Wählen Sie den gewünschten Agent aus, und wählen Sie die Registerkarte "Funktionen " aus.

    Registerkarte

  5. Suchen Sie nach der Agent.Version Funktion. Sie können diesen Wert anhand der neuesten veröffentlichten Agent-Version überprüfen. Informationen finden Sie unter Azure Pipelines Agent , und überprüfen Sie die Seite auf die höchste Versionsnummer, die aufgelistet ist.

  6. Jeder Agent aktualisiert sich automatisch, wenn eine Aufgabe ausgeführt wird, die eine neuere Version des Agents erfordert. Wenn Sie einige Agents manuell aktualisieren möchten, klicken Sie mit der rechten Maustaste auf den Pool, und wählen Sie "Alle Agents aktualisieren" aus.

Kann ich meine v2-Agents aktualisieren, die Teil eines Azure DevOps Server Pools sind?

Ja. Ab Azure DevOps Server 2019 können Sie Ihren Server so konfigurieren, dass Sie nach den Agent-Paketdateien auf einem lokalen Datenträger suchen. Diese Konfiguration überschreiben die Standardversion, die zum Zeitpunkt der Veröffentlichung mit dem Server enthalten ist. Dieses Szenario gilt auch, wenn der Server keinen Zugriff auf das Internet hat.

  1. Laden Sie auf einem Computer mit Internetzugriff die neueste Version der Agent-Paketdateien (in .zip- oder TAR.gz-Form) auf der Seite "GitHub-Versionen von Azure Pipelines Agent" herunter.

  2. Übertragen Sie die heruntergeladenen Paketdateien auf jede Azure DevOps Server Anwendungsebene, indem Sie eine Methode Ihrer Wahl verwenden (z. B. USB-Laufwerk, Netzwerkübertragung usw.). Platzieren Sie die Agentdateien unter dem %ProgramData%\Microsoft\Azure DevOps\Agents Ordner.

  3. Sie sind alle festgelegt! Ihr Azure DevOps Server verwendet jetzt die lokalen Dateien, wenn die Agents aktualisiert werden. Jeder Agent aktualisiert sich automatisch, wenn eine Aufgabe ausgeführt wird, die eine neuere Version des Agents erfordert. Wenn Sie jedoch einige Agents manuell aktualisieren möchten, klicken Sie mit der rechten Maustaste auf den Pool, und wählen Sie dann "Alle Agents aktualisieren" aus.

Haben selbstgehostete Agents gegenüber von Microsoft gehosteten Agents Leistungsvorteile?

In vielen Fällen ja. Dies gilt insbesondere in folgenden Fällen:

  • Wenn Sie einen selbstgehosteten Agent verwenden, können Sie inkrementelle Builds ausführen. Wenn Sie beispielsweise eine Pipeline definieren, die das Repository nicht bereinigen und keinen sauberen Build ausführt, werden Ihre Builds in der Regel schneller ausgeführt. Wenn Sie einen von Microsoft gehosteten Agent verwenden, erhalten Sie diese Vorteile nicht, da der Agent zerstört wird, nachdem die Build- oder Releasepipeline abgeschlossen wurde.

  • Es kann länger dauern, bis der Build von einem von Microsoft gehosteten Agent gestartet wird. Während es oft nur ein paar Sekunden dauert, bis Ihr Auftrag einem von Microsoft gehosteten Agent zugewiesen wird, kann es manchmal mehrere Minuten dauern, bis ein Agent je nach Auslastung unseres Systems zugewiesen wird.

Kann ich mehrere selbstgehostete Agents auf demselben Computer installieren?

Ja. Dieser Ansatz kann gut für Agents funktionieren, die Aufträge ausführen, die nicht viele freigegebene Ressourcen nutzen. Sie können ihn beispielsweise für Agents ausprobieren, die Releases ausführen, die größtenteils Bereitstellungen orchestrieren und nicht viel Arbeit auf dem Agent selbst ausführen.

Möglicherweise können Sie feststellen, dass Sie in anderen Fällen nicht viel Effizienz gewinnen, indem Sie mehrere Agents auf demselben Computer ausführen. Beispielsweise lohnt es sich möglicherweise nicht für Agents, die Builds ausführen, die viel Datenträger und E/A-Ressourcen verbrauchen.

Möglicherweise treten auch Probleme auf, wenn parallele Buildaufträge dieselbe Singleton-Toolbereitstellung verwenden, z. B. npm-Pakete. Beispielsweise kann ein Build eine Abhängigkeit aktualisieren, die von einem anderen Build gerade verwendet wird. Dies kann unzuverlässige Ergebnisse und Fehler verursachen.

Was ist das Verhalten von Agents, wenn die Pipelineaufträge abgebrochen werden?

Für von Microsoft gehostete Agents wird der Agent heruntergerissen und an den Azure Pipelines-Pool zurückgegeben.

Für selbst gehostete Agents:

Wenn eine Pipeline abgebrochen wird, sendet der Agent eine Folge von Befehlen an den Prozess, der den aktuellen Schritt ausführt. Der erste Befehl wird mit einem Timeout von 7,5 Sekunden gesendet. Wenn der Vorgang nicht beendet wurde, wird ein zweiter Befehl mit einem Timeout von 2,5 Sekunden gesendet. Wenn der Prozess nicht beendet wurde, stellt der Agent einen Befehl zur Beendigung des Prozesses aus. Wenn der Prozess die beiden anfänglichen Kündigungsanforderungen nicht berücksichtigt, wird er getötet. Von der anfänglichen Anforderung zum Beenden dauert ca. 10 Sekunden.

Die an den Prozess ausgestellten Befehle unterscheiden sich je nach Dem Agent-Betriebssystem.

  • macOS und Linux – Die gesendeten Befehle sind SIGINT, gefolgt von SIGTERM, gefolgt von SIGKILL.
  • Windows – Die an den Prozess gesendeten Befehle sind STRG+C, gefolgt von STRG+Break, gefolgt von Process.Kill.

Wie kann ich Agentupdates programmgesteuert für bestimmte Agentpools auslösen?

Sie können Agentupdates für den Pool mithilfe der nächsten API auslösen:

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

URI-Parameter

Name Geben Sie in Erforderlich Typ BESCHREIBUNG
agentId Abfrage False Zeichenfolge Der zu aktualisierende Agent. Wenn nicht angegeben – Update wird für alle Agents ausgelöst.
organization path True Zeichenfolge Der Name der Azure DevOps-Organisation.
poolId path True integer int32 Der zu verwendende Agentpool
api-version Abfrage False Zeichenfolge Version der zu verwendenden API. Dies sollte auf "6.0" festgelegt werden, um diese Version der API zu verwenden.

Um das Agentupdate auszulösen – Anforderungstext sollte leer sein.

Hinweis

Azure Pipelines Agent ist Open Source auf GitHub.

Weitere Informationen

Weitere Informationen zu Agents finden Sie in den folgenden Modulen aus den Buildanwendungen mit Azure DevOps-Lernpfad .