Selbstgehostete Windows-Agents

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

Hinweis

Das Pipelines-Team veröffentlicht die Version 3.x-Agentsoftware, die sich derzeit in der Vorschauphase befindet. Weitere Informationen finden Sie unter Agent-Softwareversion 3 (Vorschauversion).

Zum Erstellen und Bereitstellen von Windows-, Azure- und anderen Visual Studio-Lösungen benötigen Sie mindestens einen Windows-Agent. Windows-Agents können auch Java- und Android-Apps erstellen.

Vorbereitungen

Informationen zu Agents

Wenn Sie bereits wissen, was ein Agent ist und wie er funktioniert, können Sie direkt mit den folgenden Abschnitten fortfahren. Wenn Sie jedoch mehr Hintergrundinformationen zu ihren Aufgaben und ihrer Funktionsweise benötigen, lesen Sie Azure Pipelines-Agents.

Überprüfen der Voraussetzungen

Stellen Sie sicher, dass Ihr Computer über die folgenden Voraussetzungen verfügt:

  • Windows 7 SP1 ESU, 8.1, 10 oder 11 (bei Verwendung eines Clientbetriebssystems)
  • Windows 2012 oder höher (bei Verwendung eines Serverbetriebssystems)
  • PowerShell 3.0 oder höher
  • .NET Framework 4.6.2 oder höher

Wichtig

Ab Dezember 2019 ist die mindestens erforderliche .NET-Version für Build-Agents 4.6.2 oder höher.

Empfohlen:

Wenn Sie aus einem Subversion-Repository erstellen, müssen Sie den Subversion-Client auf dem Computer installieren.

Sie sollten das Agent-Setup beim ersten Mal manuell ausführen. Nachdem Sie ein Gefühl dafür erhalten haben, wie Agents funktionieren, oder wenn Sie die Einrichtung vieler Agents automatisieren möchten, sollten Sie die unbeaufsichtigte Konfiguration verwenden.

Hardwarespezifikationen

Die Hardwarespezifikationen für Ihre Agents variieren je nach Ihren Anforderungen, Ihrer Teamgröße usw. Es ist nicht möglich, eine allgemeine Empfehlung zu geben, die für alle gilt. Als Referenz erstellt das Azure DevOps-Team den Code der gehosteten Agents mithilfe von Pipelines, die gehostete Agents verwenden. Andererseits wird der Großteil des Azure DevOps-Codes von Computern der Serverklasse mit 24 Kernen erstellt, auf denen vier selbstgehostete Agents ausgeführt werden.

Vorbereiten von Berechtigungen

Informationssicherheit für selbstgehostete Agents

Der Benutzer, der den Agent konfiguriert, benötigt Pooladministratorberechtigungen, der Benutzer, der den Agent ausführt, jedoch nicht.

Die vom Agent kontrollierten Ordner sollten auf so wenige Benutzer wie möglich beschränkt sein und Geheimnisse enthalten, die entschlüsselt oder exfiltriert werden könnten.

Der Azure Pipelines-Agent ist ein Softwareprodukt, das zum Ausführen von Code entwickelt wurde, der aus externen Quellen heruntergeladen wird. Es kann von Natur aus ein Ziel für RCE-Angriffe (Remote Code Execution, Remotecodeausführung) sein.

Daher ist es wichtig, das Bedrohungsmodell zu berücksichtigen, das jede einzelne Verwendung von Pipelines-Agents zur Ausführung von Aufgaben umgibt, und zu entscheiden, welche Mindestberechtigungen dem Benutzer, der den Agent ausführt, dem Computer, auf dem der Agent ausgeführt wird, den Benutzern gewährt werden können, die Schreibzugriff auf die Pipelinedefinition haben, die Git-Repositorys, auf denen der yaml gespeichert ist. oder die Gruppe von Benutzern, die den Zugriff auf den Pool für neue Pipelines steuern.

Es empfiehlt sich, die Identität, auf der der Agent ausgeführt wird, von der Identität mit Berechtigungen zum Verbinden des Agents mit dem Pool zu unterscheiden. Der Benutzer, der die Anmeldeinformationen (und andere Agent-bezogene Dateien) generiert, unterscheidet sich von dem Benutzer, der sie lesen muss. Daher ist es sicherer, den Zugriff auf den Agent-Computer selbst und die Agent-Ordner, die vertrauliche Dateien wie Protokolle und Artefakte enthalten, sorgfältig zu berücksichtigen.

Es ist sinnvoll, nur DevOps-Administratoren und der Benutzeridentität, die den Agent-Prozess ausführt, Zugriff auf den Agent-Ordner zu gewähren. Administratoren müssen möglicherweise das Dateisystem untersuchen, um Buildfehler zu verstehen, oder Protokolldateien abrufen, um Azure DevOps-Fehler melden zu können.

Entscheiden, welchen Benutzer Sie verwenden möchten

Als einmaliger Schritt müssen Sie den Agent registrieren. Jemand, der die Berechtigung zum Verwalten der Agent-Warteschlange hat, muss diese Schritte ausführen. Der Agent verwendet die Anmeldeinformationen dieser Person nicht im täglichen Betrieb, aber er muss die Registrierung abschließen. Erfahren Sie mehr über die Kommunikation von Agents.

Authentifizieren mit einem persönlichen Zugriffstoken (Personal Access Token, PAT)

  1. Melden Sie sich mit dem Benutzerkonto an, das Sie in Ihrem Team Foundation Server-Webportal verwenden möchten (https://{your-server}:8080/tfs/).
  1. Melden Sie sich mit dem Benutzerkonto an, das Sie in Ihrem Azure DevOps Server-Webportal (https://{your-server}/DefaultCollection/) verwenden möchten.
  1. Melden Sie sich mit dem Benutzerkonto an, das Sie in Ihrer Azure DevOps-Organisation (https://dev.azure.com/{your_organization}) verwenden möchten.
  1. Öffnen Sie auf Ihrer Startseite Ihr Profil. Wechseln Sie zu Ihren Sicherheitsdetails.

    Wechseln Sie zu Ihren Sicherheitsdetails.

  2. Erstellen Sie ein persönliches Zugriffstoken.

    Erstellen Sie ein persönliches Zugriffstoken.

    Hinweis

    Wenn Sie einen Bereitstellungsgruppen-Agent konfigurieren oder wenn beim Registrieren einer VM-Umgebungsressource ein Fehler angezeigt wird, müssen Sie den PAT-Bereich auf Alle organisationen festlegen, auf die zugegriffen werden kann. Screenshot: Festlegen des PAT-Bereichs auf alle zugänglichen Organisationen.

  1. Öffnen Sie über die Startseite Ihre Benutzereinstellungen, und wählen Sie dann Persönliche Zugriffstoken aus.

    Wechseln Sie zu Ihren Sicherheitsdetails.

  2. Erstellen Sie ein persönliches Zugriffstoken.

    Erstellen Sie ein persönliches Zugriffstoken.

  1. Wählen Sie für den Bereich Agentpools (lesen, verwalten) aus, und stellen Sie sicher, dass alle anderen Felder deaktiviert sind. Wenn es sich um einen Bereitstellungsgruppen-Agent handelt, wählen Sie für den Bereich Bereitstellungsgruppe (lesen, verwalten) aus, und stellen Sie sicher, dass alle anderen Felder deaktiviert sind.

    Wählen Sie am unteren Rand des Fensters Neues persönliches Zugriffstoken erstellen die Option Alle Bereiche anzeigen aus, um die vollständige Liste der Bereiche anzuzeigen.

  2. Kopieren Sie das Token. Sie verwenden dieses Token, wenn Sie den Agent konfigurieren.

Vergewissern Sie sich, dass der Benutzer über die Berechtigung verfügt.

Stellen Sie sicher, dass das Benutzerkonto, das Sie verwenden möchten, über die Berechtigung zum Registrieren des Agents verfügt.

Ist der Benutzer Besitzer einer Azure DevOps-Organisation oder TFS- oder Azure DevOps Server-Administrator? Beenden Sie hier, Sie haben die Berechtigung.

Andernfalls:

  1. Öffnen Sie einen Browser, und navigieren Sie zur Registerkarte Agentpools für Ihre Azure Pipelines-Organisation oder Azure DevOps Server- oder TFS-Server:

    1. Wählen Sie 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 Sie Einstellungen, Agent-Warteschlangen, 2018 aus.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten aus, 2018.

  2. Wählen Sie den Pool rechts auf der Seite aus, und klicken Sie dann auf Sicherheit.

  3. Wenn das Benutzerkonto, das Sie verwenden möchten, nicht angezeigt wird, rufen Sie einen Administrator auf, um es hinzuzufügen. Der Administrator kann ein Agentpooladministrator, ein Besitzer der Azure DevOps-Organisation oder ein TFS- oder Azure DevOps Server-Administrator sein.

    Wenn es sich um einen Bereitstellungsgruppen-Agent handelt, kann der Administrator ein Bereitstellungsgruppenadministrator, ein Besitzer einer Azure DevOps-Organisation oder ein TFS- oder Azure DevOps Server-Administrator sein.

    Sie können der Administratorrolle der Bereitstellungsgruppe auf der Seite Bereitstellungsgruppen auf der Registerkarte Sicherheit auf der Seite Bereitstellungsgruppen in Azure Pipelines einen Benutzer hinzufügen.

Hinweis

Wenn eine Meldung wie die folgende angezeigt wird: Leider konnten wir die Identität nicht hinzufügen. Versuchen Sie es mit einer anderen Identität. Sie haben wahrscheinlich die oben genannten Schritte für einen Organisationsbesitzer oder TFS- oder Azure DevOps Server-Administrator ausgeführt. Sie müssen nichts tun; Sie verfügen bereits über die Berechtigung zum Verwalten der Agent-Warteschlange.

Herunterladen und Konfigurieren des Agents

Azure Pipelines

  1. Melden Sie sich beim Computer mit dem Konto an, für das Sie die Berechtigungen wie oben erläutert vorbereitet haben.

  2. Melden Sie sich in Ihrem Webbrowser bei Azure Pipelines an, und navigieren Sie zur Registerkarte Agentpools :

    1. Wählen Sie 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 Sie Einstellungen, Agent-Warteschlangen, 2018 aus.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten aus, 2018.

  3. Wählen Sie den Standardpool , die Registerkarte Agents und dann Neuer Agent aus.

  4. Wählen Sie im Dialogfeld Agent abrufen die Option Windows aus.

  5. Wählen Sie im linken Bereich die Prozessorarchitektur der installierten Windows-Betriebssystemversion auf Ihrem Computer aus. Die x64-Agent-Version ist für 64-Bit-Windows vorgesehen, während die x86-Version für 32-Bit-Windows vorgesehen ist. Wenn Sie nicht sicher sind, welche Version von Windows installiert ist, befolgen Sie diese Anweisungen, um dies herauszufinden.

  6. Klicken Sie im rechten Bereich auf die Schaltfläche Herunterladen .

  7. Befolgen Sie die Anweisungen auf der Seite, um den Agent herunterzuladen.

  8. Entpacken Sie den Agent in das Verzeichnis Ihrer Wahl. Stellen Sie sicher, dass der Pfad zum Verzeichnis keine Leerzeichen enthält, da Tools und Skripts Leerzeichen nicht immer ordnungsgemäß escapen. Ein empfohlener Ordner ist C:\agents. Das Extrahieren im Downloadordner oder in anderen Benutzerordnern kann Zu Berechtigungsproblemen führen. Führen Sie dann config.cmd aus. Dadurch werden Sie eine Reihe von Fragen zum Konfigurieren des Agents gestellt.

Azure DevOps Server 2019 und Azure DevOps Server 2020

  1. Melden Sie sich beim Computer mit dem Konto an, für das Sie die Berechtigungen wie oben erläutert vorbereitet haben.

  2. Melden Sie sich in Ihrem Webbrowser bei Azure DevOps Server 2019 an, und navigieren Sie zur Registerkarte Agentpools:

    1. Wählen Sie 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 Sie Einstellungen, Agent-Warteschlangen, 2018 aus.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten aus, 2018.

  3. Klicken Sie auf Agent herunterladen.

  4. Klicken Sie im Dialogfeld Agent abrufen auf Windows.

  5. Wählen Sie im linken Bereich die Prozessorarchitektur der installierten Windows-Betriebssystemversion auf Ihrem Computer aus. Die x64-Agent-Version ist für 64-Bit-Windows vorgesehen, während die x86-Version für 32-Bit-Windows vorgesehen ist. Wenn Sie nicht sicher sind, welche Version von Windows installiert ist, befolgen Sie diese Anweisungen, um dies herauszufinden.

  6. Klicken Sie im rechten Bereich auf die Schaltfläche Herunterladen .

  7. Befolgen Sie die Anweisungen auf der Seite, um den Agent herunterzuladen.

  8. Entpacken Sie den Agent in das Verzeichnis Ihrer Wahl. Stellen Sie sicher, dass der Pfad zum Verzeichnis keine Leerzeichen enthält, da Tools und Skripts Leerzeichen nicht immer ordnungsgemäß escapen. Ein empfohlener Ordner ist C:\agents. Das Extrahieren im Downloadordner oder in anderen Benutzerordnern kann Zu Berechtigungsproblemen führen. Führen Sie dann config.cmd aus. Dadurch werden Sie eine Reihe von Fragen zum Konfigurieren des Agents gestellt.

TFS 2018

  1. Melden Sie sich beim Computer mit dem Konto an, für das Sie die Berechtigungen wie oben erläutert vorbereitet haben.

  2. Melden Sie sich in Ihrem Webbrowser bei TFS an, und navigieren Sie zur Registerkarte Agentpools :

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

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

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten aus, 2018.

  3. Klicken Sie auf Agent herunterladen.

  4. Klicken Sie im Dialogfeld Agent abrufen auf Windows.

  5. Klicken Sie auf die Schaltfläche Herunterladen .

  6. Befolgen Sie die Anweisungen auf der Seite, um den Agent herunterzuladen.

  7. Entpacken Sie den Agent in das Verzeichnis Ihrer Wahl. Stellen Sie sicher, dass der Pfad zum Verzeichnis keine Leerzeichen enthält, da Tools und Skripts Leerzeichen nicht immer ordnungsgemäß escapen. Ein empfohlener Ordner ist C:\agents. Das Extrahieren im Downloadordner oder in anderen Benutzerordnern kann Zu Berechtigungsproblemen führen. Führen Sie dann config.cmd aus.

Wichtig

Es wird dringend empfohlen, den Agent über ein PowerShell-Fenster mit erhöhten Rechten zu konfigurieren. Wenn Sie als Dienst konfigurieren möchten, ist dies erforderlich.

Sie dürfen Windows PowerShell ISE nicht verwenden, um den Agent zu konfigurieren.

Wichtig

Aus Sicherheitsgründen wird dringend empfohlen, sicherzustellen, dass der Ordner agents (C:\agents) nur von Administratoren bearbeitet werden kann.

Hinweis

Vermeiden Sie die Verwendung von Mintty-basierten Shells, z. B. git-bash, für die Agentkonfiguration. Mintty ist nicht vollständig mit der nativen Eingabe-/Ausgabe-Windows-API kompatibel (hier finden Sie einige Informationen dazu), und wir konnten in diesem Fall keine korrekte Arbeit des Setupskripts garantieren.

Server-URL und Authentifizierung

Wenn das Setup nach der Server-URL fragt, antworten https://dev.azure.com/{your-organization}Sie für Azure DevOps Services .

Wenn das Setup nach ihrer Server-URL fragt, antworten https://{your_server}/tfsSie für TFS.

Wenn setup nach Ihrem Authentifizierungstyp fragt, wählen Sie PAT aus. Fügen Sie dann das von Ihnen erstellte PAT-Token in das Eingabeaufforderungsfenster ein.

Hinweis

Bei Verwendung von PAT als Authentifizierungsmethode wird das PAT-Token nur während der Erstkonfiguration des Agents verwendet. Später, wenn die PAT abläuft oder verlängert werden muss, sind keine weiteren Änderungen durch den Agent erforderlich.

Wenn Sie Ihren Agent für die Verbindung mit TFS konfigurieren, haben Sie die folgenden Optionen:

  • Alternative Stellen Sie mithilfe der Standardauthentifizierung eine Verbindung mit TFS her. Nachdem Sie Alternative ausgewählt haben, werden Sie zur Eingabe Ihrer Anmeldeinformationen aufgefordert.

  • Verhandeln Stellen Sie eine Verbindung mit TFS als einem anderen Benutzer als dem angemeldeten Benutzer über ein Windows-Authentifizierung-Schema wie NTLM oder Kerberos her. Nachdem Sie Aushandeln ausgewählt haben, werden Sie zur Eingabe von Anmeldeinformationen aufgefordert.

  • Integriert (Standard) Verbinden Sie einen Windows-Agent mit TFS, indem Sie die Anmeldeinformationen des angemeldeten Benutzers über ein Windows-Authentifizierung-Schema wie NTLM oder Kerberos verwenden. Nachdem Sie diese Methode ausgewählt haben, werden Sie nicht zur Eingabe von Anmeldeinformationen aufgefordert.

  • PAT Wird nur in Azure Pipelines und TFS 2017 und höher unterstützt. Nachdem Sie PAT ausgewählt haben, fügen Sie das von Ihnen erstellte PAT-Token in das Eingabeaufforderungsfenster ein. Verwenden Sie ein persönliches Zugriffstoken (Personal Access Token, PAT), wenn sich Ihre TFS-Instanz und der Agent-Computer nicht in einer vertrauenswürdigen Domäne befinden. Die PAT-Authentifizierung wird von Ihrer TFS-Instanz anstelle des Domänencontrollers verarbeitet.

Hinweis

Bei Verwendung von PAT als Authentifizierungsmethode wird das PAT-Token nur für die Erstkonfiguration des Agents verwendet. Wenn der PAT neu generiert werden muss, sind keine weiteren Änderungen am Agent erforderlich.

Weitere Informationen finden Sie unter Kommunikation mit Azure Pipelines oder TFS.

Auswählen des interaktiven Modus oder des Dienstmodus

Eine Anleitung dazu, ob der Agent im interaktiven Modus oder als Dienst ausgeführt werden soll, finden Sie unter Agents: Interactive vs. service.

Wenn Sie sich für die Ausführung als Dienst entscheiden (was wir empfehlen), sollte der Benutzername, den Sie ausführen, maximal 20 Zeichen umfassen.

Ausführen des Agents

Interaktiv ausführen

Wenn Sie den Agent für die interaktive Ausführung konfiguriert haben, gehen Sie folgendermaßen vor, um ihn auszuführen:

.\run.cmd

Um den Agent neu zu starten, drücken Sie STRG+C, um den Agent zu beenden, und führen Sie dann aus run.cmd , um ihn neu zu starten.

Einmal ausführen

Für Agents, die für die interaktive Ausführung konfiguriert sind, können Sie festlegen, dass der Agent nur einen Auftrag akzeptiert. So führen Sie in dieser Konfiguration aus:

.\run.cmd --once

Agents in diesem Modus akzeptieren nur einen Auftrag und fahren dann ordnungsgemäß herunter (nützlich für die Ausführung in Docker in einem Dienst wie Azure Container Instances).

Als Dienst ausführen

Wenn Sie den Agent für die Ausführung als Dienst konfiguriert haben, wird er automatisch gestartet. Sie können den Status der Agentausführung über das Dienst-Snap-In anzeigen und steuern. Führen Sie aus services.msc , und suchen Sie nach einem der folgenden:

  • "Azure Pipelines-Agent (Name Ihres Agents)".
  • "VSTS-Agent (Name Ihres Agents)".
  • "vstsagent. (Name der Organisation). (Name Ihres Agenten)".

Um den Agent neu zu starten, klicken Sie mit der rechten Maustaste auf den Eintrag, und wählen Sie Neu starten aus.

Hinweis

Wenn Sie das Anmeldekonto des Agents ändern müssen, sollten Sie dies nicht über das Snap-In Dienste tun. Lesen Sie stattdessen die folgenden Informationen, um den Agent neu zu konfigurieren.

Um Ihren Agent zu verwenden, führen Sie einen Auftrag mit dem Pool des Agents aus. Wenn Sie keinen anderen Pool ausgewählt haben, befindet sich Ihr Agent im Standardpool .

Ersetzen eines Agents

Um einen Agent zu ersetzen, führen Sie die Schritte Herunterladen und Konfigurieren des Agents erneut aus.

Wenn Sie einen Agent konfigurieren, der denselben Namen wie ein bereits vorhandener Agent verwendet, werden Sie gefragt, ob Sie den vorhandenen Agent ersetzen möchten. Wenn Sie antworten Y, stellen Sie sicher, dass Sie den Agent entfernen (siehe unten), den Sie ersetzen. Andernfalls wird einer der Agents nach einigen Minuten von Konflikten heruntergefahren.

Entfernen und erneutes Konfigurieren eines Agents

So entfernen Sie den Agent

.\config remove

Nachdem Sie den Agent entfernt haben, können Sie ihn erneut konfigurieren.

Unbeaufsichtigte Konfiguration

Der Agent kann über ein Skript ohne menschliches Eingreifen eingerichtet werden. Sie müssen und die Antworten auf alle Fragen übergeben --unattended .

Um einen Agent zu konfigurieren, muss er die URL zu Ihrer Organisation oder die Sammlung und Anmeldeinformationen einer Person kennen, die zum Einrichten von Agents autorisiert ist. Alle anderen Antworten sind optional. Jeder Befehlszeilenparameter kann stattdessen mithilfe einer Umgebungsvariablen angegeben werden: Geben Sie den Namen in Großbuchstaben ein, und stellen VSTS_AGENT_INPUT_Sie voran. Beispiel: VSTS_AGENT_INPUT_PASSWORD Statt anzugeben --password.

Erforderliche Optionen

  • --unattended – Das Agent-Setup fordert keine Informationen auf, und alle Einstellungen müssen über die Befehlszeile bereitgestellt werden.
  • --url <url> - URL des Servers. Beispiel: https://dev.azure.com/myorganization oder http://my-azure-devops-server:8080/tfs.
  • --auth <type> - Authentifizierungstyp. Gültige Werte sind:
    • pat(Persönliches Zugriffstoken): PAT ist das einzige Schema, das mit Azure DevOps Services funktioniert.
    • negotiate (Kerberos oder NTLM)
    • alt (Standardauthentifizierung)
    • integrated (Windows-Standardanmeldeinformationen)

Authentifizierungsoptionen

  • Wenn Sie folgendes ausgewählt haben --auth pat:
    • --token <token> – gibt Ihr persönliches Zugriffstoken an.
    • PAT ist das einzige Schema, das mit Azure DevOps Services funktioniert.
  • Wenn Sie oder --auth altausgewählt haben--auth negotiate:
    • --userName <userName> – gibt einen Windows-Benutzernamen im Format domain\userName oder an. userName@domain.com
    • --password <password> – gibt ein Kennwort an.

Pool- und Agentnamen

  • --pool <pool> – Poolname für den Agent, dem der Beitritt hinzugefügt werden soll
  • --agent <agent> – Agentname
  • --replace – Ersetzen Sie den Agent in einem Pool. Wenn ein anderer Agent mit demselben Namen lauscht, tritt ein Konflikt auf.

Agent-Setup

  • --work <workDirectory> - Arbeitsverzeichnis, in dem Auftragsdaten gespeichert werden. Der Standardwert befindet sich _work im Stammverzeichnis des Agent-Verzeichnisses. Das Arbeitsverzeichnis gehört einem bestimmten Agent und sollte nicht von mehreren Agents gemeinsam genutzt werden.
  • --acceptTeeEula– akzeptieren Sie den Team Explorer Everywhere Endbenutzer-Lizenzvertrag (nur macOS und Linux)
  • --disableloguploads – die Ausgabe des Konsolenprotokolls nicht an den Server streamen oder senden. Stattdessen können Sie sie nach Abschluss des Auftrags aus dem Dateisystem des Agenthosts abrufen.

Nur Windows-Start

  • --runAsService – Konfigurieren des Agents für die Ausführung als Windows-Dienst (erfordert Administratorberechtigung)
  • --runAsAutoLogon – Konfigurieren der automatischen Anmeldung und Ausführen des Agents beim Start (erfordert Administratorberechtigung)
  • --windowsLogonAccount <account> – wird mit --runAsService oder --runAsAutoLogon verwendet, um den Windows-Benutzernamen im Format domain\userName oder anzugeben. userName@domain.com
  • --windowsLogonPassword <password> – wird mit --runAsService oder --runAsAutoLogon verwendet, um das Windows-Anmeldekennwort anzugeben (nicht erforderlich für gruppenverwaltete Dienstkonten und integrierte Windows-Konten wie "NT AUTHORITY\NETWORK SERVICE")
  • --overwriteAutoLogon – wird mit --runAsAutoLogon verwendet, um die vorhandene automatische Anmeldung auf dem Computer zu überschreiben.
  • --noRestart – wird mit --runAsAutoLogon verwendet, um den Neustart des Hosts nach Abschluss der Agentkonfiguration zu beenden.

Problembehandlung beim Konfigurieren des Agents mit der runAsAutoLogon Option

Wenn Sie den Agent mit der Option konfigurieren, runAsAutoLogon wird der Agent jedes Mal nach dem Neustart des Computers ausgeführt. Führen Sie die nächsten Schritte aus, wenn der Agent nach dem Neustart des Computers nicht ausgeführt wird.

Wenn der Agent bereits auf dem Computer konfiguriert war

Bevor Sie den Agent neu konfigurieren, müssen Sie die alte Agentkonfiguration entfernen. Versuchen Sie daher, diesen Befehl aus dem Agentordner auszuführen:

.\config.cmd remove --auth 'PAT' --token '<token>'

Überprüfen Sie, ob der Agent aus Ihrem Agent-Pool entfernt wurde, nachdem Sie den Befehl ausgeführt haben:

<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents

Entfernen Sie den Agent manuell aus Ihrem Agent-Pool, wenn er nicht durch Ausführen des Befehls entfernt wurde.

Versuchen Sie dann, den Agent neu zu konfigurieren, indem Sie den folgenden Befehl aus dem Ordner agent ausführen:

.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'

Geben Sie den Agentnamen (einen beliebigen eindeutigen Namen) an, und überprüfen Sie, ob dieser Agent nach der Neukonfiguration in Ihrem Agent-Pool angezeigt wurde.

Es ist viel besser, ein Agent-Archiv zu entpacken (das hier heruntergeladen werden kann) und diesen Befehl aus dem neuen entpackten Agent-Ordner auszuführen.

Überprüfen, ob der Windows-Registrierungsschlüssel ordnungsgemäß aufgezeichnet und gespeichert wurde

Führen Sie den whoami /user Befehl aus, um die <sid>abzurufen. Öffnen Sie Registry Editor den Pfad, und folgen Sie dem Pfad:

Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Überprüfen Sie, ob der VSTSAgent Schlüssel vorhanden ist. Löschen Sie diesen Schlüssel, falls er vorhanden ist, und konfigurieren Registry Editor Sie den Agent, indem Sie den .\config.cmd Befehl (ohne Args) aus dem Agent-Ordner ausführen. Öffnen Registry Editor Sie vor der Beantwortung der Frage Enter Restart the machine at a later time?erneut, und überprüfen Sie, ob der VSTSAgent Schlüssel angezeigt wurde. Drücken Sie Enter , um die Frage zu beantworten, und überprüfen Sie, ob der VSTSAgent Schlüssel nach dem Neustart des Computers an seiner Stelle verbleibt.

Überprüfen, ob Windows-Registrierungsschlüssel auf Ihrem Computer einwandfrei funktionieren

Erstellen Sie eine autorun.cmd Datei, die die folgende Zeile enthält: echo "Hello from AutoRun!". Öffnen Registry Editor und erstellen Sie im Pfad oberhalb eines neuen Schlüssel-Wert-Paares mit dem Schlüssel AutoRun und dem Wert.

C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"

Starten Sie den Computer neu. Sie haben ein Problem mit Windows-Registrierungsschlüsseln, wenn kein Konsolenfenster mit der Hello from AutoRun! Meldung angezeigt wird.

Nur Bereitstellungsgruppe

  • --deploymentGroup – Konfigurieren des Agents als Bereitstellungsgruppen-Agent
  • --deploymentGroupName <name> – wird mit --deploymentGroup verwendet, um die Bereitstellungsgruppe für den Zu verknüpfenden Agent anzugeben.
  • --projectName <name> – wird mit --deploymentGroup verwendet, um den Projektnamen festzulegen.
  • --addDeploymentGroupTags – wird mit --deploymentGroup verwendet, um anzugeben, dass Bereitstellungsgruppentags hinzugefügt werden sollen.
  • --deploymentGroupTags <tags> – wird mit --addDeploymentGroupTags verwendet, um die durch Trennzeichen getrennte Liste der Tags für den Bereitstellungsgruppen-Agent anzugeben, z. B. "web, db"

Nur Umgebungen

  • --addvirtualmachineresourcetags – wird verwendet, um anzugeben, dass Umgebungsressourcentags hinzugefügt werden sollen
  • --virtualmachineresourcetags <tags> – wird mit --addvirtualmachineresourcetags verwendet, um die durch Trennzeichen getrennte Liste von Tags für den Umgebungsressourcen-Agent anzugeben, z. B. "web, db"

.\config --help Listet immer die neuesten erforderlichen und optionalen Antworten auf.

Diagnose

Wenn Sie Probleme mit Ihrem selbstgehosteten Agent haben, können Sie die Diagnose ausführen. Nach dem Konfigurieren des Agents:

.\run --diagnostics

Dadurch wird eine Diagnosesuite ausgeführt, die Ihnen bei der Problembehandlung helfen kann. Das Diagnosefeature ist ab Agent-Version 2.165.0 verfügbar.

Hilfe zu anderen Optionen

So erfahren Sie mehr über andere Optionen:

.\config --help

Die Hilfe enthält Informationen zu Authentifizierungsalternativen und unbeaufsichtigten Konfigurationen.

Funktionen

Die Funktionen Ihres Agents werden katalogisiert und im Pool angekündigt, sodass ihm nur die Builds und Releases zugewiesen werden, die er verarbeiten kann. Weitere Informationen finden Sie unter Erstellen und Freigeben von Agentfunktionen.

In vielen Fällen müssen Sie nach der Bereitstellung eines Agents Software oder Hilfsprogramme installieren. Im Allgemeinen sollten Sie auf Ihren Agents installieren, welche Software und Tools Sie auf Ihrem Entwicklungscomputer verwenden.

Wenn Ihr Build beispielsweise den npm-Task enthält, wird der Build nur ausgeführt, wenn sich im Pool ein Build-Agent befindet, für den npm installiert ist.

Wichtig

Zu den Funktionen gehören alle Umgebungsvariablen und die Werte, die bei der Ausführung des Agents festgelegt werden. Wenn sich einer dieser Werte ändert, während der Agent ausgeführt wird, muss der Agent neu gestartet werden, um die neuen Werte zu erhalten. Nachdem Sie neue Software auf einem Agent installiert haben, müssen Sie den Agent neu starten, damit die neue Funktion im Pool angezeigt wird, damit der Build ausgeführt werden kann.

Wenn Sie Umgebungsvariablen als Funktionen ausschließen möchten, können Sie sie festlegen, indem Sie eine Umgebungsvariable VSO_AGENT_IGNORE mit einer durch Trennzeichen getrennten Liste von Variablen festlegen, die ignoriert werden sollen.

Häufig gestellte Fragen

Gewusst wie sicherstellen, dass ich die neueste v2-Agent-Version habe?

  1. Navigieren Sie zur Registerkarte Agentpools :

    1. Wählen Sie 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 Sie Einstellungen, Agentwarteschlangen, 2018 aus.

    2. Wählen Sie Pools verwalten aus.

      Wählen Sie Pools verwalten aus, 2018.

  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 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 Funktionen aus.

      Hinweis

      Von Microsoft gehostete Agents zeigen keine Systemfunktionen an. Eine Liste der auf von 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 2019 die Registerkarte Funktionen aus.

    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. Siehe Azure Pipelines-Agent , und überprüfen Sie auf der Seite die höchste Versionsnummer.

  6. Jeder Agent aktualisiert sich automatisch, 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 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 er nach den Agent-Paketdateien auf einem lokalen Datenträger sucht. Diese Konfiguration überschreibt die Standardversion, die zum Zeitpunkt der Veröffentlichung mit dem Server enthalten war. Dieses Szenario gilt auch, wenn der Server keinen Zugriff auf das Internet hat.

  1. Laden Sie von einem Computer mit Internetzugriff die neueste Version der Agent-Paketdateien (in .zip- oder tar.gz-Form) von der GitHub-Releaseseite des Azure Pipelines-Agents herunter.

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

  3. Sie sind fertig! Ihr Azure DevOps Server verwendet nun die lokalen Dateien, wenn die Agents aktualisiert werden. Jeder Agent aktualisiert sich automatisch, 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 aktualisieren aus.

Ich führe eine Firewall aus und mein Code befindet sich in Azure Repos. Mit welchen URLs muss der Agent kommunizieren?

Wenn Sie einen Agent in einem sicheren Netzwerk hinter einer Firewall ausführen, stellen Sie sicher, dass der Agent die Kommunikation mit den folgenden URLs und IP-Adressen initiieren kann.

Domänen-URL Beschreibung
https://{organization_name}.pkgs.visualstudio.com Azure DevOps-Paketerstellungs-API für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://{organization_name}.visualstudio.com Für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://{organization_name}.vsblob.visualstudio.com Azure DevOps-Telemetrie für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://{organization_name}.vsrm.visualstudio.com Release Management Services für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://{organization_name}.vstmr.visualstudio.com Azure DevOps Test Management Services für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com Für Organisationen, die die dev.azure.com Domäne verwenden
https://*.vsassets.io Azure Artifacts über CDN
https://*.vsblob.visualstudio.com Azure DevOps-Telemetrie für Organisationen, die die dev.azure.com Domäne verwenden
https://*.vssps.visualstudio.com Azure DevOps Platform Services für Organisationen, die die dev.azure.com Domäne verwenden
https://*.vstmr.visualstudio.com Azure DevOps Test Management Services für Organisationen, die die dev.azure.com Domäne verwenden
https://app.vssps.visualstudio.com Für Organisationen, die die {organization_name}.visualstudio.com Domäne verwenden
https://dev.azure.com Für Organisationen, die die dev.azure.com Domäne verwenden
https://login.microsoftonline.com Azure Active Directory-Registrierung
https://management.core.windows.net Azure Management-API
https://vstsagentpackage.azureedge.net Agent-Paket

Um sicherzustellen, dass Ihre Organisation mit vorhandenen Firewall- oder IP-Einschränkungen arbeitet, stellen Sie sicher, dass dev.azure.com und *dev.azure.com geöffnet sind, und aktualisieren Sie Ihre zugelassenen IP-Adressen, um die folgenden IP-Adressen basierend auf Ihrer IP-Version einzuschließen. Wenn Sie die IP-Adressen 13.107.6.183 und 13.107.9.183 derzeit zulassen, behalten Sie diese bei, da Sie sie nicht entfernen müssen.

IPv4-Bereiche

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6-Bereiche

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Hinweis

Weitere Informationen zu zulässigen Adressen finden Sie unter Listen zulässiger Adressen und Netzwerkverbindungen.

Gewusst wie den Agent mit selbstsigniertem Zertifikat ausführen?

Ausführen des Agents mit selbstsigniertem Zertifikat

Gewusst wie den Agent hinter einem Webproxy ausführen?

Ausführen des Agents hinter einem Webproxy

Gewusst wie den Agent neu starten

Wenn Sie den Agent interaktiv ausführen, lesen Sie die Neustartanweisungen unter Interaktiv ausführen. Wenn Sie den Agent als Dienst ausführen, starten Sie den Agent neu, indem Sie die Schritte unter Ausführen als Dienst ausführen ausführen.

Gewusst wie für jeden einzelnen Agent verschiedene Umgebungsvariablen festlegen?

Erstellen Sie eine .env Datei im Stammverzeichnis des Agents, und fügen Sie Umgebungsvariablen, die Sie festlegen möchten, im folgenden Format in die Datei ein:

MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4

Gewusst wie den Agent so konfigurieren, dass ein Webproxy umgangen und eine Verbindung mit Azure Pipelines hergestellt wird?

Wenn der Agent Ihren Proxy umgehen und direkt eine Verbindung mit Azure Pipelines herstellen soll, sollten Sie Ihren Webproxy so konfigurieren, dass der Agent auf die folgenden URLs zugreifen kann.

Für Organisationen, die die *.visualstudio.com Domäne verwenden:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

Für Organisationen, die die dev.azure.com Domäne verwenden:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

Um sicherzustellen, dass Ihre Organisation mit vorhandenen Firewall- oder IP-Einschränkungen arbeitet, stellen Sie sicher, dass dev.azure.com und *dev.azure.com geöffnet sind, und aktualisieren Sie Ihre zugelassenen IP-Adressen, um die folgenden IP-Adressen basierend auf Ihrer IP-Version einzuschließen. Wenn Sie die IP-Adressen 13.107.6.183 und 13.107.9.183 derzeit zulassen, behalten Sie diese bei, da Sie sie nicht entfernen müssen.

IPv4-Bereiche

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6-Bereiche

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Hinweis

Dieses Verfahren ermöglicht es dem Agent, einen Webproxy zu umgehen. Ihre Buildpipeline und Skripts müssen weiterhin die Umgehung Ihres Webproxys für jede Aufgabe und jedes Tool verarbeiten, die Sie in Ihrem Build ausführen.

Wenn Sie beispielsweise eine NuGet-Aufgabe verwenden, müssen Sie Ihren Webproxy so konfigurieren, dass er die Umgehung der URL für den Server unterstützt, der den verwendeten NuGet-Feed hostet.

Ich verwende TFS, und die URLs in den obigen Abschnitten funktionieren für mich nicht. Wo kann ich Hilfe erhalten?

Websiteeinstellungen und Sicherheit

Ich verwende TFS lokal und einige dieser Features werden nicht angezeigt. Warum nicht?

Einige dieser Features sind nur auf Azure Pipelines und noch nicht lokal verfügbar. Einige Features sind lokal verfügbar, wenn Sie ein Upgrade auf die neueste Version von TFS vorgenommen haben.