Azure Pipelines-Agents

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

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 mit Azure Pipelines bereitzustellen, benötigen Sie mindestens einen Agent. Wenn Sie mehr Code und Personen hinzufügen, benötigen Sie letztendlich mehr.

Wenn Die Pipeline ausgeführt wird, startet das System einen oder mehrere Aufträge. Ein Agent arbeitet mit einer Infrastruktur mit installierter Agentsoftware, die jeweils einen Auftrag ausführt.

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

Von Microsoft gehostete Agents

Wenn sich Ihre Pipelines in Azure Pipelines befinden, haben Sie eine praktische 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. Von Microsoft gehostete Agents können Aufträge direkt auf dem virtuellen Computer oder in einem Containerausfü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.

Erfahren Sie mehr über von Microsoft gehostete Agents.

Selbstgehostete Agents

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

Hinweis

Obwohl mehrere Agents pro Computer installiert werden können, wird dringend empfohlen, 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 selbstgehosteten Agent installieren, sollten Sie prüfen, ob ein von Microsoft gehosteter Agentpool für Sie geeignet ist. In vielen Fällen ist dies die einfachste Möglichkeit. 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 selbstgehosteten Agents finden Sie unter:

Sie können den Agent auf Linux-, macOS- oder Windows-Computern installieren. Weitere Informationen zum Installieren eines selbstgehosteten Agents finden Sie unter:

Hinweis

Unter 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 ausgeführt wird. Mit dem folgenden Befehl wird das erweiterte Attribut für die Datei gelöscht:

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, wie dies 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 über alle aktuellen Patches und Fehlerbehebungen verfügt.

Agents für Azure-VM-Skalierungssets

Azure-VM-Skalierungssatz-Agents sind eine Form von selbstgehosteten Agents, die automatisch skaliert werden können, um Ihre Anforderungen zu erfüllen. Diese Elastizität reduziert die Notwendigkeit, dedizierte Agents ständig auszuführen. Im Gegensatz zu von Microsoft gehosteten Agents haben Sie Flexibilität hinsichtlich der Größe und des Images der Computer, auf denen Agents ausgeführt werden.

Sie geben eine VM-Skalierung gruppe, eine Anzahl von Agents, die im Standbymodus bleiben sollen, eine maximale Anzahl von virtuellen Computern in der Skalierung gruppe an, und Azure Pipelines die Skalierung Ihrer Agents für Sie verwaltet.

Weitere Informationen finden Sie unter Azure-VM-Skalierungssatz-Agents.

Parallelaufträge

Parallele Aufträge stellen die Anzahl von Aufträgen 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 eingereiht 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 einer von Microsoft gehosteten Infrastruktur oder in Ihrer eigenen (selbstgehosteten) Infrastruktur ausführen.

Microsoft bietet in jeder Organisation standardmäßig einen kostenlosen Diensttarif an, der mindestens einen parallelen Auftrag umfasst. Abhängig von der Anzahl gleichzeitiger Pipelines, die Sie ausführen müssen, benötigen Sie möglicherweise mehr parallele Aufträge, um mehrere von Microsoft gehostete oder selbstgehostete Agents gleichzeitig zu verwenden. Weitere Informationen zu parallelen Aufträgen und verschiedenen free-Tarifen finden Sie unter Parallele Aufträge in Azure Pipelines.

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

Wichtig

Ab Azure DevOps Server 2019 müssen Sie nicht mehr für selbstgehostete gleichzeitige Aufträge in Releases bezahlen. Sie sind nur durch die Anzahl der Agents beschränkt, über die Sie verfügen.

Funktionen

Jeder selbstgehostete Agent verfügt über eine Reihe von Funktionen, die angeben, was er tun kann. Funktionen sind Name-Wert-Paare, die entweder automatisch von der Agent-Software erkannt werden. In diesem Fall werden sie als Systemfunktionenbezeichnet oder von Ihnen definiert. In diesem Fall werden sie als Benutzerfunktionenbezeichnet.

Die Agent-Software bestimmt automatisch verschiedene Systemfunktionen, z. B. den Namen des Computers, den Typ des Betriebssystems und versionen bestimmter Software, die auf dem Computer installiert ist. Außerdem werden auf dem Computer definierte Umgebungsvariablen automatisch in der Liste der Systemfunktionen angezeigt.

Hinweis

Das Speichern von Umgebungsvariablen als Funktionen bedeutet, dass bei der Ausführung eines Agents die gespeicherten Funktionswerte zum Festlegen der Umgebungsvariablen verwendet werden. Außerdem werden alle Änderungen an Umgebungsvariablen, die während der Ausführung des Agents vorgenommen werden, von keinem Task übernommen und verwendet. Wenn sich sensible Umgebungsvariablen ändern und sie nicht als Funktionen gespeichert werden sollen, können Sie sie ignorieren lassen, indem Sie die VSO_AGENT_IGNORE Umgebungsvariable mit einer durch Kommas getrennten Liste von Variablen festlegen, die ignoriert werden sollen. Ist beispielsweise PATH eine kritische Variable, die Sie ignorieren möchten, wenn Sie Software installieren.

Wenn Sie eine Pipeline erstellen, geben Sie bestimmte Anforderungen des Agents an. Das System sendet den Auftrag nur an Agents, die über Funktionen verfügen, die den in der Pipeline angegebenen Anforderungen entsprechen. Daher können Sie mit agent-Funktionen Aufträge an bestimmte Agents leiten.

Hinweis

Anforderungen und Funktionen sind für die Verwendung mit selbstgehosteten Agents konzipiert, sodass Aufträge mit einem Agent abgegleichen werden können, der die Anforderungen des Auftrags erfüllt. Wenn Sie von Microsoft gehostete Agents verwenden, wählen Sie ein Image für den Agent aus, das 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 einschließlich seiner Version und Systemfunktionen anzeigen und seine Benutzerfunktionen verwalten, indem Sie zu Agentpools 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, Organisationseinstellungenaus.

      Wählen Sie Organisationseinstellungen aus.

    2. Wählen Sie Agentpools aus.

      Wählen Sie die Registerkarte Agentpools aus.

    1. Wählen Azure DevOps, Sammlungseinstellungen aus.

      Wählen Sie Sammlungseinstellungen aus.

    2. Wählen Sie Agentpools aus.

      Wählen Sie Agentpools aus.

    1. Wählen 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) Agent-Warteschlangen aus.

      Wählen Einstellungen, Agent-Warteschlangen, 2018 aus.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten, 2018 aus.

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

      Einstellungen auswählen, Agent-Warteschlangen, 2017.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten, 2017 aus.

    1. Navigieren Sie zu Ihrem Projekt, und wählen Sie Projekt verwalten (Zahnradsymbol) aus.

      Projekt verwalten, 2015.

    2. Wählen Sie Systemsteuerung aus.

      Wählen Sie Systemsteuerung, 2015 aus.

    3. Wählen Sie Agentpools aus.

      Wählen Sie Agentpools, 2015 aus.

  2. Navigieren Sie zur Registerkarte "Funktionen":

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

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

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

      Wählen Sie Agents und dann den Agent aus.

    3. Wählen Sie die Registerkarte Funktionen aus.

      Wählen Sie die Registerkarte Funktionen aus.

      Hinweis

      Von Microsoft gehostete Agents zeigen keine Systemfunktionen an. Eine Liste der Software, die auf von Microsoft gehosteten Agents installiert ist, 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 und dann den gewünschten Agent aus.

      Wählen Sie Agents und dann 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 und dann den gewünschten Agent aus.

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

    3. Wählen Sie die Registerkarte Funktionen aus.

      Wählen Sie die Registerkarte Funktionen 2019 aus.

    Wählen Sie den gewünschten Agent und dann die Registerkarte Funktionen aus.

    Registerkarte

    Wählen Sie den gewünschten Agent und dann die Registerkarte Funktionen aus.

    Registerkarte

    Wählen Sie auf der Registerkarte Agentpools den gewünschten Agent und dann die Registerkarte Funktionen aus.

    Wählen Sie die Registerkarte Agent-Funktionen 2015 aus.

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

Tipp

Nachdem Sie neue Software auf einem selbstge gehosteten Agent installiert haben, müssen Sie den Agent neu starten, damit die neue Funktion bereitgestellt wird. Weitere Informationen finden Sie unter Neustarten Windows-Agents,Neustarten des Linux-Agentsund Neustarten des Mac-Agents.

Kommunikation

Kommunikation mit Azure Pipelines

Kommunikation mit TFS

Der Agent kommuniziert mit Azure Pipelines oder TFS, um zu ermitteln, welcher Auftrag ausgeführt werden muss, und um die Protokolle und den Auftragsstatus zu melden. Diese Kommunikation wird immer vom Agent initiiert. Alle Nachrichten vom Agent an Azure Pipelines oder TFS werden über HTTP oder HTTPS gesendet, je nachdem, wie Sie den Agent konfigurieren. Mit diesem Pullmodell kann der Agent in verschiedenen Topologien konfiguriert werden, wie unten dargestellt.

Agenttopologien in lokalen Installationen.

Agenttopologien in Azure DevOps Services.

Im Folgenden finden Sie ein gängiges Kommunikationsmuster zwischen dem Agent und Azure Pipelines oder TFS.

  1. Der Benutzer registriert einen Agent bei Azure Pipelines ODER TFS, indem er ihn einem Agentpool hinzufügung. Sie müssen Ein Agentpooladministrator sein, um einen Agent in diesem Agentpool zu registrieren. Die Identität des Agentpooladministrators wird nur zum Zeitpunkt der Registrierung benötigt und nicht auf dem Agent beibehalten und auch nicht in einer weiteren Kommunikation zwischen dem Agent und Azure Pipelines ODER TFS verwendet. Sobald die Registrierung abgeschlossen ist, lädt der Agent ein Listener-OAuth-Token herunter und verwendet es zum Lauschen auf die Auftragswarteschlange.

  2. Der Agent lauset mithilfe einer langen HTTP-Abfrage, um zu sehen, ob eine neue Auftragsanforderung dafür in der Auftragswarteschlange in Azure Pipelines/TFS gesendet 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/TFS für die bereichsbasierte Identität generiert, die in der Pipeline angegeben ist. Dieses Token ist kurzlebig und wird vom Agent für den Zugriff auf Ressourcen (z. B. Quellcode) oder zum Ändern von Ressourcen (z. B. Hochladen von Testergebnissen) in Azure Pipelines oder TFS innerhalb dieses Auftrags verwendet.

  3. Nach Abschluss des Auftrags verwirft der Agent das auftragsspezifische OAuth-Token und überprüft mithilfe des OAuth-Listenertokens, ob eine neue Auftragsanforderung vor liegt.

Die Nutzlast der Nachrichten, die zwischen agent und Azure Pipelines/TFS ausgetauscht werden, wird 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 sie an den Agent sendet. Der Agent entschlüsselt den Auftragsinhalt mit seinem privaten Schlüssel. Auf diese Weise werden geheimnisse, die in Pipelines oder variablen Gruppen gespeichert sind, beim Austausch mit dem Agent gesichert.

Im Folgenden finden Sie ein gängiges Kommunikationsmuster zwischen dem Agent und TFS.

  • Ein Agentpooladministrator verbindet den Agent mit einem Agentpool, und die Anmeldeinformationen des Dienstkontos (für Windows) oder des gespeicherten Benutzernamens und Kennworts (für Linux und macOS) werden verwendet, um die Kommunikation mit TFS zu initiieren. Der Agent verwendet diese Anmeldeinformationen, um auf die Auftragswarteschlange zu lauschen.

  • Der Agent verwendet bei der Kommunikation mit dem Server keine Verschlüsselung mit asymmetrischem Schlüssel. Sie können jedoch HTTPS verwenden, um die Kommunikation zwischen dem Agent und TFS zu schützen.

Kommunikation für die Bereitstellung auf Zielservern

Wenn Sie den Agent zum Bereitstellen von Artefakten auf einer Gruppe von Servern verwenden, muss er über eine "Sichtverbindung" mit diesen Servern verfügen. Die von Microsoft gehosteten Agent-Pools verfügen standardmäßig über Konnektivität mit Azure-Websites und -Servern, die in Azure ausgeführt werden.

Hinweis

Wenn Ihre Azure-Ressourcen in einer Azure Virtual Network ausgeführt werden, können Sie die Agent-IP-Bereiche, in denen von Microsoft gehostete Agents bereitgestellt werden, erhalten, damit Sie die Firewallregeln für Ihr Azure-VNET so konfigurieren können, dass der Zugriff durch den Agent zulässig ist.

Wenn Ihre lokalen Umgebungen nicht mit einem von Microsoft gehosteten Agentpool verbunden sind (was in der Regel aufgrund von Zwischenfirewalls der Fall ist), müssen Sie manuell einen selbstge gehosteten Agent auf lokalen Computern konfigurieren. Die Agents müssen eine Verbindung mit den lokalen Zielumgebungen und Zugriff auf das Internet haben, um eine Verbindung mit Azure Pipelines oder Team Foundation Server herstellen zu können, wie im folgenden Schema gezeigt.

Agent-Konnektivität für lokale Umgebungen

Authentifizierung

Zum Registrieren eines Agents müssen Sie Mitglied der Administratorrolle im Agentpool sein. Die Identität des Agentpooladministrators wird nur zum Zeitpunkt der Registrierung benötigt und nicht auf dem Agent beibehalten und nicht in nachfolgenden Kommunikationen zwischen agent und Azure Pipelines oder TFS verwendet. Darüber hinaus müssen Sie ein lokaler Administrator auf dem Server sein, um den Agent konfigurieren zu können.

Ihr Agent kann sich mithilfe der Azure Pipelines Authentifizierung bei der Anwendung authentifizieren:

Ihr Agent kann sich Azure DevOps Server oder TFS authentifizieren, indem er eine der folgenden Methoden verwendet:

Persönliches Zugriffstoken (Personal Access Token, PAT):

Generieren sie ein PAT, und verwenden Sie es, um einen Agent mit Azure Pipelines oder TFS 2017 oder neuer zu verbinden. PAT ist das einzige Schema, das mit der Azure Pipelines. Das PAT muss über den Bereich Agentpools (Lesen, Verwalten) verfügen (für einen Bereitstellungsgruppe-Agent muss das PAT den Bereich Bereitstellungsgruppe (Lesen, Verwalten) haben). Während ein einzelnes PAT zum Registrieren mehrerer Agents verwendet werden kann, wird das PAT nur zum Zeitpunkt der Registrierung des Agents und nicht für die nachfolgende Kommunikation verwendet. Weitere Informationen finden Sie im Abschnitt Authentifizieren mit einem persönlichen Zugriffstoken (Personal Access Token, PAT) in den Artikeln Windows,Linuxoder macOS selbstge gehostete Agents.

Um ein PAT mit TFS zu verwenden, muss Ihr Server mit HTTPS konfiguriert sein. Weitere Informationen finden Sie unter Websiteeinstellungen und Sicherheit.

Integriert

Verbinden einen Windows-Agent mithilfe der Anmeldeinformationen des angemeldeten Benutzers über ein Windows-Authentifizierungsschema wie NTLM oder Kerberos an TFS.

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

  1. Melden Sie sich bei dem Computer an, auf dem TFS ausgeführt wird.

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

IIS-TFS-Windows-Authentifizierung

IIS-TFS-Windows-Authentifizierung mit ntlm-Anbieter

Aushandeln

Verbinden tfs als ein anderer Benutzer als der angemeldete Benutzer über ein Windows Authentifizierungsschema 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 TFS ausgeführt wird.

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

IIS-TFS-Windows-Authentifizierung

IIS-TFS-Windows-Authentifizierung mit Negotiate und NTLM-Anbieter

Alternativ

Verbinden mithilfe der Standardauthentifizierung zu TFS. Um diese Methode zu verwenden, müssen Sie zunächst HTTPS für TFS konfigurieren.

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

  1. Melden Sie sich bei dem Computer an, auf dem TFS ausgeführt wird.

  2. Konfigurieren sie die Standardauthentifizierung. Weitere Informationen finden Sie unter Verwenden Team Foundation Server 2015 mit der Standardauthentifizierung.

Interaktiver vergleicht Dienst

Sie können Ihren selbstge gehosteten Agent entweder als Dienst oder als interaktiven Prozess ausführen. Nachdem Sie den Agent konfiguriert haben, wird empfohlen, ihn zuerst im interaktiven Modus zu testen, um sicherzustellen, dass er funktioniert. Für die Produktion empfiehlt es sich dann, den Agent in einem der folgenden Modi zu verwenden, damit er 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 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.

  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 bestehen Sicherheitsrisiken, wenn Sie die automatische Anmeldung aktivieren oder den Bildschirmschoner deaktivieren, da Sie es anderen Benutzern ermöglichen, zum 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. beispielsweise in einer sicheren Einrichtung. Wenn Sie Remotedesktop für den Zugriff auf den Computer verwenden, auf dem ein Agent mit automatischer Anmeldung ausgeführt wird, führt das einfache Schließen der Remotedesktop dazu, dass der Computer gesperrt wird, und alle ui-Tests, die auf diesem Agent ausgeführt werden, können fehlschlagen. Um dies zu vermeiden, verwenden Sie den Befehl tscon, um die Verbindung mit dem Remotedesktop. 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 ab unterscheiden, die Sie beim Registrieren des Agents bei Azure Pipelines TFS verwenden.) Die Auswahl des Agent-Kontos 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 Tests der codierten UI ausführen, die einen Browser erfordern, wird der Browser im Kontext des Agent-Kontos 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, was bedeutet, dass der Agent im Laufe der Zeit weniger Verwaltung benötigt.

Agent-Version und Upgrades

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

Von Microsoft gehostete Agents werden immer auf dem neuesten Stand gehalten. Wenn sich die neuere Version des Agents nur in der Nebenversion befindet, können selbstge gehostete Agents in der Regel automatisch aktualisiert werden (konfigurieren Sie diese Einstellung in Agent-Pools,wählen Sie Ihren Agent aus, Einstellungen – der Standardwert ist aktiviert) von Azure Pipelines. Ein Upgrade wird angefordert, wenn ein Plattformfeature oder einer der in der Pipeline verwendeten Aufgaben eine neuere Version des Agents erfordert.

Wenn Sie einen selbstge 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 Agentpools in Ihrer Organisation tun. Ihre Pipelines werden erst ausgeführt, wenn sie auf einen kompatiblen Agent zielen können.

So aktualisieren Sie selbstge gehostete Agents

  1. Navigieren Sie zu Project ,-Agent-Pools.

    Project, Agent-Pools

  2. Wählen Sie Ihren Agentpool und dann Alle Agents aktualisieren aus.

    Aktualisieren aller Agents

    Sie können Agents auch einzeln aktualisieren, indem Sie im Menü ... auf Agentaktualisieren klicken.

    Update-Agent

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

    Bestätigung zum Aktualisieren aller Agents

  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 einen Moment– lange genug, um die neueste Version der Agent-Software (ca. 200 MB) herunterzuladen, zu entzippen und den Agent mit der neuen Version neu zu starten. Sie können den Status Ihrer Agents auf der Registerkarte Agents überwachen.

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

Wenn Ihr Azure DevOps Server- oder TFS-Server über eine neuere Version des Agents verfügt und dieser neuere Agent nur in der Nebenversion anders ist, kann er in der Regel automatisch aktualisiert werden. Ein Upgrade wird angefordert, wenn ein Plattformfeature oder einer der in der Pipeline verwendeten Aufgaben 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 Agentpools unter Ihrer Projektsammlung tun. Ihre Pipelines werden erst ausgeführt, wenn sie auf einen kompatiblen Agent zielen können.

Sie können die Version eines Agents anzeigen, indem Sie zu Agentpools navigieren und die Registerkarte Funktionen für den gewünschten Agent auswählen, wie unter Konfigurieren von Agentfunktionen beschrieben.

Um das Agentupdate programmgesteuert auszulösen, können Sie die Agent-Update-API wie im Abschnitt Wie kann ich Agentupdates programmgesteuert für einen bestimmten Agentpool auslösen? beschrieben verwenden.

Hinweis

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

Häufig gestellte Fragen

Gewusst wie sie sicherstellen, dass ich die neueste Version des v2-Agents habe?

  1. Navigieren Sie zur Registerkarte Agentpools:

    1. Wählen Azure DevOps, Organisationseinstellungen aus.

      Wählen Sie Organisationseinstellungen aus.

    2. Wählen Sie Agentpools aus.

      Wählen Sie die Registerkarte Agentpools aus.

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

      Wählen Sie Sammlungseinstellungen aus.

    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) Agent-Warteschlangen aus.

      Wählen Einstellungen, Agent-Warteschlangen, 2018 aus.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten, 2018 aus.

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

      Einstellungen auswählen, Agent-Warteschlangen, 2017.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten, 2017 aus.

    1. Navigieren Sie zu Ihrem Projekt, und wählen Sie Projekt verwalten (Zahnradsymbol) aus.

      Projekt verwalten, 2015.

    2. Wählen Sie Systemsteuerung aus.

      Wählen Sie Systemsteuerung, 2015 aus.

    3. Wählen Sie Agentpools aus.

      Wählen Sie Agentpools, 2015 aus.

  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 Agentpools den gewünschten Agentpool aus.

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

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

      Wählen Sie Agents und dann den Agent aus.

    3. Wählen Sie die Registerkarte Funktionen aus.

      Wählen Sie die Registerkarte Funktionen aus.

      Hinweis

      Von Microsoft gehostete Agents zeigen keine Systemfunktionen an. Eine Liste der Software, die auf von Microsoft gehosteten Agents installiert ist, 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 und dann den gewünschten Agent aus.

      Wählen Sie Agents und dann 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 und dann den gewünschten Agent aus.

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

    3. Wählen Sie die Registerkarte Funktionen aus.

      Wählen Sie die Registerkarte Funktionen 2019 aus.

    Wählen Sie den gewünschten Agent und dann die Registerkarte Funktionen aus.

    Registerkarte

    Wählen Sie den gewünschten Agent und dann die Registerkarte Funktionen aus.

    Registerkarte

    Wählen Sie auf der Registerkarte Agentpools den gewünschten Agent und dann die Registerkarte Funktionen aus.

    Wählen Sie die Registerkarte Agentfunktionen 2015 aus.

  5. Suchen Sie nach der Agent.Version Funktion . Sie können diesen Wert anhand der neuesten veröffentlichten Agent-Version überprüfen. Sehen Sie sich Azure Pipelines-Agent an, und überprüfen Sie die Seite auf die höchste aufgeführte Versionsnummer.

  6. Jeder Agent aktualisiert sich automatisch selbst, wenn er eine Aufgabe ausführt, 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 aktualisierenaus.

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 er nach den Agent-Paketdateien auf einem lokalen Datenträger sucht. Diese Konfiguration überschreibt die Standardversion, die zum Zeitpunkt der Veröffentlichung auf dem Server enthalten war. 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 (im Format .zip oder .tar.gz) von der Seite Azure Pipelines Agent GitHub Releasesherunter.

  2. Übertragen Sie die heruntergeladenen Paketdateien mithilfe einer Methode Ihrer Wahl (z. B. USB-Laufwerk, Netzwerkübertragung usw.) auf jede Azure DevOps Server Anwendungsebene. Platzieren Sie die Agent-Dateien im %ProgramData%\Microsoft\Azure DevOps\Agents Ordner .

  3. Sie sind alle festgelegt! Ihr Azure DevOps Server verwendet jetzt die lokalen Dateien, sobald die Agents aktualisiert werden. Jeder Agent aktualisiert sich automatisch selbst, wenn er eine Aufgabe ausführt, 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 aktualisierenaus.

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 bereinigt und keinen bereinigten 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 nach Abschluss der Build- oder Releasepipeline zerstört wird.

  • Ein von Microsoft gehosteter Agent kann länger dauern, bis der Build gestartet wird. Es dauert zwar häufig nur wenige Sekunden, bis Ihr Auftrag einem von Microsoft gehosteten Agent zugewiesen ist, es kann jedoch manchmal einige Minuten dauern, bis ein Agent abhängig von der Auslastung unseres Systems zugeordnet 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 verbrauchen. Sie können es beispielsweise für Agents ausprobieren, die Releases ausführen, die hauptsächlich Bereitstellungen orchestrieren und nicht viel Arbeit mit dem Agent selbst erledigen.

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

Es können auch Probleme auftreten, wenn parallele Buildaufträge dieselbe Singletontoolbereitstellung verwenden, z. B. npm-Pakete. Beispielsweise kann ein Build eine Abhängigkeit aktualisieren, während sich ein anderer Build gerade in der Verwendung befindet, was zu unzuverlässigen Ergebnissen und Fehlern führen kann.

Wie verhält es sich bei Agents, wenn die Pipelineaufträge abgebrochen werden?

Bei von Microsoft gehosteten Agents wird der Agent ab- und an den pool Azure Pipelines zurückgegeben.

Für selbstgehostete Agents:

Wenn eine Pipeline abgebrochen wird, sendet der Agent eine Sequenz 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 Prozess nicht beendet wurde, wird ein zweiter Befehl mit einem Timeout von 2,5 Sekunden gesendet. Wenn der Prozess nicht beendet wurde, gibt der Agent einen Befehl zum Beenden des Prozesses aus. Wenn der Prozess die beiden anfänglichen Beendigungsanforderungen nicht berücksichtigt, wird er beendet. Von der ersten Anforderung bis zur Beendigung dauert ungefähr 10 Sekunden.

Die für den Prozess ausgegebenen Befehle unterscheiden sich je nach Betriebssystem des Agents.

  • macOS und Linux: Die gesendeten Befehle sind SIGINT, gefolgt von SIGTERM, gefolgt von SIGKILL.
  • Windows: Die an den Prozess gesendeten Befehle lauten STRG+C, gefolgt von STRG+BREAK und process.Kill.

Wie kann ich Agentupdates programmgesteuert für einen bestimmten Agentpool auslösen?

Sie können Agent-Updates für den Pool auslösen, indem Sie die nächste API verwenden:

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 verwendende API. Dies sollte auf "6.0" festgelegt werden, um diese Version der API zu verwenden.

Um ein Agentupdate auszulösen, sollte der Anforderungstext leer sein.

Hinweis

Azure Pipelines-Agent ist open source auf GitHub.

Weitere Informationen

Weitere Informationen zu Agents finden Sie in den folgenden Modulen unter Erstellen von Anwendungen mit Azure DevOps Lernpfad.