Azure Pipelines-Agents
Azure DevOps Services | Azure DevOps Server 2020 | 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 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.
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 als Team Foundation Server (TFS) bezeichnet, verwenden. Selbst gehostete Agents bieten Ihnen mehr Kontrolle, um abhängige Software zu installieren, 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 auch einen Agent in einem Docker-Container installieren. Weitere Informationen zum Installieren eines selbst gehosteten Agents finden Sie unter:
- macOS-Agent
- Linux-Agent (x64, ARM, ARM64, RHEL6)
- Windows Agent (x64, x86)
- Docker-Agent
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 alle anderen Software auf diesem Computer installieren, wie sie von Ihren Aufträgen benötigt werden.
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.
Skalierungs-Agents für azure virtual machine scale agents
Azure Virtual Machine Scale Set Agents sind eine Form von selbst gehosteten Agents, die automatisch skaliert werden können, um Ihre Anforderungen zu erfüllen. Diese Flexibilität reduziert Ihre Notwendigkeit, dedizierte Agents alle Zeit auszuführen. Im Gegensatz zu von Microsoft gehosteten Agents haben Sie Flexibilität über die Größe und das Bild von Computern, auf denen Agents ausgeführt werden.
Sie geben einen Skalierungssatz für virtuelle Computer an, eine Reihe von Agents, die im Standbymodus bleiben sollen, eine maximale Anzahl virtueller Computer im Skalierungssatz und Azure Pipelines die Skalierung Ihrer Agents für Sie verwaltet.
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.
Navigieren Sie in Ihrem Webbrowser zu Agentpools:
Wählen Sie Azure DevOps, Organisationseinstellungen aus.

Wählen Sie Agentpools aus.

Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

Wählen Sie Agentpools aus.

Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

Wählen Sie Agentpools aus.

Navigieren Sie zu Ihrem Projekt, und wählen Sie Einstellungen (Zahnradsymbol) >Agent-Warteschlangen aus.

Wählen Sie "Pools verwalten" aus.

Navigieren Sie zur Registerkarte "Funktionen":
Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Agentpool aus.

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

Wählen Sie die Registerkarte "Funktionen " aus.

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.
Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Pool aus.

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

Wählen Sie die Registerkarte "Funktionen " aus.

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

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

Wählen Sie die Registerkarte "Funktionen " aus.

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

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, damit die neue Funktion angezeigt wird. Weitere Informationen finden Sie unter Neustart Windows Agent, Neustart linux agent und Neustart Mac Agent.
Kommunikation
Kommunikation mit Azure Pipelines
Kommunikation mit TFS
Der Agent kommuniziert mit Azure Pipelines oder Azure DevOps Server, um zu bestimmen, welche Aufgabe ausgeführt werden muss, und um die Protokolle und den Auftragsstatus zu melden. Diese Kommunikation wird immer vom Agent initiiert. Alle Nachrichten vom Agent bis Azure Pipelines oder Azure DevOps Server erfolgen über HTTP oder HTTPS, je nachdem, wie Sie den Agent konfigurieren. Mit diesem Pullmodell kann der Agent in verschiedenen Topologien konfiguriert werden, wie unten dargestellt.


Hier ist ein gängiges Kommunikationsmuster zwischen dem Agent und Azure Pipelines oder Azure DevOps Server.
Der Benutzer registriert einen Agent mit Azure Pipelines oder Azure DevOps Server, indem er ihn zu einem Agentpool hinzufügt. 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 und wird nicht auf dem Agent beibehalten, noch wird er in einer weiteren Kommunikation zwischen dem 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.
Der Agent lauscht darauf, zu sehen, ob eine neue Auftragsanfrage in der Auftragswarteschlange in Azure Pipelines/Azure DevOps Server mit einer HTTP-langen Umfrage gepostet 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 verwendet, um auf Ressourcen (z. B. Quellcode) zuzugreifen oder Ressourcen (z. B. Testergebnisse hochladen) für Azure Pipelines oder Azure DevOps Server innerhalb dieses Auftrags zu ändern.
Nachdem der Auftrag abgeschlossen wurde, verwirft der Agent das auftragsspezifische OAuth-Token und wechselt zurück, um zu überprüfen, ob eine neue Auftragsanforderung mit dem Listener-OAuth-Token vorhanden ist.
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 er an den Agent gesendet wird. Der Agent entschlüsselt den Auftragsinhalt mit seinem privaten Schlüssel. So werden geheime Schlüssel, die in Pipelines oder Variablengruppen gespeichert sind, gesichert, während sie mit dem Agent ausgetauscht werden.
Kommunikation zur Bereitstellung auf Zielservern
Wenn Sie den Agent zum Bereitstellen von Artefakten auf einer Reihe von Servern verwenden, muss sie über eine Verbindung 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 keine Verbindung mit einem von Microsoft gehosteten Agentpool haben (was in der Regel aufgrund von Zwischenfirewalls der Fall ist), müssen Sie einen selbst gehosteten Agent auf lokalen Computern manuell konfigurieren. Die Agents müssen über eine Verbindung mit den lokalen Zielumgebungen verfügen und auf das Internet zugreifen, um eine Verbindung mit Azure Pipelines oder Team Foundation Server herzustellen, wie in der folgenden Schematik gezeigt.

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 und wird nicht auf dem Agent beibehalten und wird nicht in einer nachfolgenden Kommunikation zwischen dem 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 mit der folgenden Methode bei Azure Pipelines 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 selbst gehostete Agents.
Um einen PAT mit Azure DevOps Server zu verwenden, muss Ihr Server mit HTTPS konfiguriert werden. Siehe Websiteeinstellungen und Sicherheit.
Integriert
Verbinden ein Windows Agent an 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.
Melden Sie sich bei dem Computer an, auf dem Sie TFS ausführen.
Starten Sie Internetinformationsdienste-Manager. Wählen Sie Ihre TFS-Website aus, und stellen Sie sicher, dass Windows Authentifizierung mit einem gültigen Anbieter wie NTLM oder Kerberos aktiviert ist.


Aushandeln
Verbinden zu TFS als anderer Benutzer als der angemeldete Benutzer über ein Windows-Authentifizierung Schema wie NTLM oder Kerberos.
Um diese Authentifizierungsmethode zu verwenden, müssen Sie zuerst Ihren TFS-Server konfigurieren.
Melden Sie sich am Computer an, auf dem Sie TFS ausführen.
Starten Sie Internetinformationsdienste-Manager. Wählen Sie Ihre TFS-Website aus, und stellen Sie sicher, dass Windows Authentifizierung mit dem Verhandlungsanbieter und mit einer anderen Methode wie NTLM oder Kerberos aktiviert ist.


Alternativ
Verbinden mithilfe der Standardauthentifizierung zu TFS. 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:
Melden Sie sich beim Computer an, auf dem Sie TFS ausführen.
Konfigurieren sie die Standardauthentifizierung. Siehe Verwenden
tfxvon Team Foundation Server 2015 mithilfe der Standardauthentifizierung.
Interaktiver vs. Dienst
Sie können Ihren selbst gehosteten Agent entweder als Dienst oder als interaktiver Prozess ausführen. Nachdem Sie den Agent konfiguriert haben, empfiehlt es sich zunächst im interaktiven Modus, um sicherzustellen, dass er funktioniert. Anschließend wird empfohlen, den Agent in einem der folgenden Modi auszuführen, damit er zuverlässig in einem ausgeführten Zustand bleibt. Diese Modi stellen auch sicher, dass der Agent automatisch gestartet wird, wenn der Computer neu gestartet wird.
Als Dienst. Sie können den Service-Manager des Betriebssystems nutzen, um den Lebenszyklus des Agents zu verwalten. Darüber hinaus ist die Erfahrung für das automatische Upgrade des Agents besser, wenn er als Dienst ausgeführt wird.
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 suchen 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. 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 mit 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.
Bei Windows sollten Sie die Verwendung eines Dienstkontos wie Netzwerkdienst oder lokaler Dienst in Betracht ziehen. 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) nach 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
Navigieren Sie zu Project Einstellungen, Agentpools.

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

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

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

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?
Navigieren Sie zur Registerkarte "Agent-Pools ":
Wählen Sie Azure DevOps, Organisationseinstellungen aus.

Wählen Sie Agentpools aus.

Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

Wählen Sie Agentpools aus.

Wählen Sie Azure DevOps, Sammlungseinstellungen aus.

Wählen Sie Agentpools aus.

Navigieren Sie zu Ihrem Projekt, und wählen Sie Einstellungen (Zahnradsymbol) >Agent-Warteschlangen aus.

Wählen Sie "Pools verwalten" aus.

Klicken Sie auf den Pool, der den Agent enthält.
Stellen Sie sicher, dass der Agent aktiviert ist.
Navigieren Sie zur Registerkarte "Funktionen":
Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Agentpool aus.

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

Wählen Sie die Registerkarte "Funktionen " aus.

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.
Wählen Sie auf der Registerkarte "Agent-Pools " den gewünschten Pool aus.

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

Wählen Sie die Registerkarte "Funktionen " aus.

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

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

Wählen Sie die Registerkarte "Funktionen " aus.

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

Suchen Sie nach der
Agent.VersionFunktion. Sie können diesen Wert anhand der neuesten veröffentlichten Agent-Version überprüfen. Weitere Informationen finden Sie unter Azure Pipelines Agent, und überprüfen Sie die Seite auf die höchste Versionsnummer.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.
Laden Sie auf einem Computer mit Internetzugriff die neueste Version der Agent-Paketdateien (in .zip- oder TAR.gz-Formular) auf der Seite Azure Pipelines Agent GitHub Versionen herunter.
Ü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\AgentsOrdner.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 aus, um den Prozess zu töten. Wenn der Prozess die beiden anfänglichen Kündigungsanforderungen nicht berücksichtigt, wird er getötet. Von der anfänglichen Anforderung bis zur Beendigung dauert ca. 10 Sekunden.
Die an den Prozess ausgestellten Befehle unterscheiden sich je nach Agentbetriebssystem.
- 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 | type | BESCHREIBUNG |
|---|---|---|---|---|
agentId |
Abfrage | False | Zeichenfolge | Der zu aktualisierende Agent. Wenn nicht angegeben – wird das Update 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 die Agentaktualisierung auszulösen – Anforderungstext sollte leer sein.
Hinweis
Azure Pipelines Agent wird auf GitHub Open Source.
Weitere Informationen
Weitere Informationen zu Agents finden Sie in den folgenden Modulen aus den Buildanwendungen mit Azure DevOps Lernpfad.