Selbstgehostete macOS-Agents
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Dieser Artikel enthält Anleitungen zur Verwendung der 3.x-Agentsoftware mit Azure DevOps Services und aktuellen Versionen von Azure DevOps Server. Eine Liste der Azure DevOps Server-Versionen, die den 3.x-Agent unterstützen, finden Sie unter Unterstützt Azure DevOps Server den 3.x-Agent.
Zum Erstellen und Bereitstellen von Xcode-Apps benötigen Sie mindestens einen macOS-Agent. Dieser Agent kann auch Java- und Android-Apps erstellen und bereitstellen.
Anmerkung
In diesem Artikel wird beschrieben, wie Sie einen selbst gehosteten Agentkonfigurieren. Wenn Sie Azure DevOps Services und einen von Microsoft gehosteten Agent verwenden, Ihren Anforderungen entspricht, können Sie die Einrichtung eines selbst gehosteten macOS-Agents überspringen.
Informationen zu Agents
Wenn Sie bereits wissen, was ein Agent ist und wie es funktioniert, können Sie direkt in die folgenden Abschnitte springen. Wenn Sie jedoch weitere Hintergrundinformationen zu ihren Aufgaben und deren Funktionsweise wünschen, lesen Sie Azure Pipelines-Agents.
Überprüfen der Voraussetzungen
- Unterstützte Betriebssysteme
- x64
- macOS 10.15 "Catalina"
- macOS 11.0 "Big Sur"
- macOS 12.0 "Monterey"
- macOS 13.0 "Ventura"
- macOS 14.0 "Sonoma"
- ARM64
- macOS 11.0 "Big Sur"
- macOS 12.0 "Monterey"
- macOS 13.0 "Ventura"
- macOS 14.0 "Sonoma"
- x64
- Git- - Git 2.9.0 oder höher (neueste Version empfohlen - Sie können problemlos mit Homebrewinstallieren)
- .NET – Die Agentsoftware wird auf .NET 6 ausgeführt, installiert jedoch eine eigene Version von .NET, sodass keine .NET-Voraussetzung vorhanden ist.
- TFVC: Wenn Sie einen Build anhand eines TFVC-Repositorys erstellen, finden Sie weitere Informationen unter Voraussetzungen für TFVC.
Vorbereiten von Berechtigungen
Wenn Sie von einem Subversion-Repository aus bauen, müssen Sie den Subversion-Client auf dem Rechner installieren.
Sie sollten das Agent-Setup beim ersten Mal manuell ausführen. Nachdem Sie ein Gefühl dafür bekommen haben, wie Agents funktionieren, oder wenn Sie die Einrichtung vieler Agents automatisieren möchten, können Sie die unbeaufsichtigte Konfiguration verwenden.
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 gesteuerten Ordner sollten auf so wenige Benutzer wie möglich beschränkt werden, da sie geheime Schlüssel enthalten, die entschlüsselt oder exfiltriert werden können.
Der Azure Pipelines-Agent ist ein Softwareprodukt, das zum Ausführen von Code entwickelt wurde, der von externen Quellen heruntergeladen wird. Es könnte von Natur aus ein Ziel für Remote-Code-Execution (RCE)-Angriffe sein.
Daher ist es wichtig, das Bedrohungsmodell für jede einzelne Verwendung von Pipelines-Agents zur Ausführung von Arbeiten zu berücksichtigen und zu entscheiden, welche Mindestberechtigungen dem Benutzer, der den Agent ausführt, auf dem Computer, auf dem der Agent läuft, den Benutzern mit Schreibzugriff auf die Pipelinedefinition, die Git-Repositories, in denen das yaml gespeichert ist, oder der Gruppe von Benutzern, die den Zugriff auf den Pool für neue Pipelines steuern, gewährt werden können.
Es empfiehlt sich, die Identität, mit 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 agentbezogene 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 prüfen.
Es ist sinnvoll, nur für DevOps-Administratoren und die Benutzeridentität, die den Agentprozess ausführt, Zugriff auf den Agentordner zu gewähren. Administratoren müssen möglicherweise das Dateisystem untersuchen, um Buildfehler zu verstehen oder Protokolldateien abzurufen, um Azure DevOps-Fehler zu melden.
Entscheiden Sie, welchen Benutzer Sie verwenden möchten
Als einmaliger Schritt müssen Sie den Agent registrieren. Jemand mit Berechtigung zum Verwalten der Agent-Warteschlange muss diese Schritte ausführen. Der Agent verwendet die Anmeldeinformationen dieser Person nicht im täglichen Betrieb, sie sind aber erforderlich, um die Registrierung abzuschließen. Erfahren Sie mehr über die Kommunikation von Agents.
Bestätigen, dass der Benutzer über die Berechtigung verfügt
Stellen Sie sicher, dass das Benutzerkonto, das Sie verwenden werden, über die Berechtigung zum Registrieren des Agents verfügt.
Ist der Benutzer ein Azure DevOps-Organisationsbesitzer oder TFS- oder Azure DevOps Server-Administrator? Dann müssen Sie nichts weiter tun: Sie verfügen über die nötige Berechtigung.
Sonst:
Öffnen Sie einen Browser, und navigieren Sie zur Registerkarte Agent-Pools für Ihre Azure Pipelines-Organisation oder Azure DevOps Server- oder TFS-Server:
Melden Sie sich bei Ihrer Organisation an (
https://dev.azure.com/{yourorganization}
).Wählen Sie „Azure DevOps“, „Organisationseinstellungen“.
Wählen Sie Agentpools aus.
Melden Sie sich bei Ihrer Projektsammlung unter
http://your-server/DefaultCollection
an.Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Wählen Sie rechts auf der Seite den Pool aus, und klicken Sie dann auf Sicherheit.
Wenn das Benutzerkonto, das Sie verwenden möchten, nicht angezeigt wird, rufen Sie einen Administrator ab, um es hinzuzufügen. Der Administrator kann ein Agentpool-Administrator, ein Azure DevOps-Organisationsinhaberoder ein TFS- oder Azure DevOps Server-Administratorsein.
Wenn es sich um einen Bereitstellungsgruppen-Agent handelt, kann der Administrator ein Bereitstellungsgruppenadministrator, Azure DevOps-Organisationsbesitzer oder TFS- oder Azure DevOps Server-Administrator sein.
Sie können der Administratorrolle der Bereitstellungsgruppe in Azure Pipelines auf der Seite Bereitstellungsgruppen auf der Registerkarte Sicherheit einen Benutzer hinzufügen.
Anmerkung
Wenn eine Meldung wie „Die Identität konnte leider nicht hinzugefügt werden. Versuchen Sie es mit einer anderen Identität.“ angezeigt wird, haben Sie 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 des Agentpools.
Herunterladen und Konfigurieren des Agents
Azure-Pipelines
Melden Sie sich beim Computer mit dem Konto an, für das Sie Berechtigungen wie im vorherigen Abschnitt erläutert vorbereitet haben.
Melden Sie sich in Ihrem Webbrowser bei Azure Pipelines an, und navigieren Sie zur Registerkarte Agent-Pools:
Melden Sie sich bei Ihrer Organisation an (
https://dev.azure.com/{yourorganization}
).Wählen Sie Azure DevOps, Organisationseinstellungen aus.
Wählen Sie Agentpools aus.
Melden Sie sich bei Ihrer Projektsammlung unter
http://your-server/DefaultCollection
an.Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Wählen Sie den Pool Standard, die Registerkarte Agents und anschließend Neuer Agent aus.
Klicken Sie im Dialogfeld Agent abrufen auf macOS.
Wählen Sie die Schaltfläche Herunterladen aus.
Folgen Sie den Anweisungen auf der Seite.
Löschen Sie das erweiterte Attribut für die TAR-Datei:
xattr -c vsts-agent-osx-x64-V.v.v.tar.gz
.Entpacken Sie den Agent in ein Verzeichnis Ihrer Wahl.
cd
in dieses Verzeichnis, und führen Sie./config.sh
aus. Stellen Sie sicher, dass der Pfad zum Verzeichnis keine Leerzeichen enthält, da Tools und Skripts Leerzeichen nicht immer ordnungsgemäß mit Escapezeichen versehen.
Server-URL
Azure-Pipelines: https://dev.azure.com/{your-organization}
Azure DevOps Server: https://{your_server}/tfs
Authentifizierungstyp
Wenn Sie Agenten registrieren, wählen Sie aus den folgenden Authentifizierungstypen aus, und die Agenteneinrichtung fordert Sie auf, die erforderlichen spezifischen zusätzlichen Informationen für jeden Authentifizierungstyp anzugeben. Weitere Informationen finden Sie unter Authentifizierungsoptionen für selbstgehostete Agents.
- Persönliches Zugriffstoken
- Alternativ: Stellen Sie mithilfe der Standardauthentifizierung eine Verbindung zu Azure DevOps Server oder TFS her. Wenn Sie Alternative auswählen, werden Sie zur Eingabe Ihrer Zugangsdaten aufgefordert.
Interaktive Ausführung
Anleitungen dazu, ob der Agent im interaktiven Modus oder als Dienst ausgeführt werden soll, finden Sie unter Agents: Interactive vs. service.
So führen Sie den Agent interaktiv aus
Wenn Sie den Agent als Dienst ausgeführt haben, deinstallieren Sie den Dienst.
Führen Sie den Agent aus.
./run.sh
Um den Agent neu zu starten, drücken Sie STRG+C, und führen Sie dann run.sh
aus, um ihn neu zu starten.
Um Ihren Agent zu verwenden, führen Sie einen Auftrag mithilfe des Agent-Pools aus. Wenn Sie keinen anderen Pool ausgewählt haben, wird Ihr Agent im Pool Standard platziert.
Einmalige Ausführung
Bei Agents, die dafür konfiguriert sind, interaktiv zu laufen, können Sie auswählen, dass der Agent nur einen Auftrag akzeptiert. So führen Sie diese Konfiguration aus
./run.sh --once
Agents in diesem Modus akzeptieren nur einen Auftrag und fahren dann ordnungsgemäß herunter, was für die Ausführung in einem Dienst wie Azure Container Instances nützlich ist.
Ausführung als Dienst des Typs „launchd“
Wir stellen das ./svc.sh
Skript bereit, mit dem Sie Ihren Agent als launchd
LaunchAgent-Dienst ausführen und verwalten können. Dieses Skript wird generiert, nachdem Sie den Agent konfiguriert haben. Der Dienst hat Zugriff auf die Benutzeroberfläche, um Ihre UI-Tests auszuführen.
Anmerkung
Wenn Sie andere Ansätze bevorzugen, können Sie jede Art von Dienstmechanismus verwenden, die Sie bevorzugen. Weitere Informationen unter Dienstdateien.
Token
Im folgenden Abschnitt werden diese Token ersetzt:
{agent-name}
{tfs-name}
Sie haben beispielsweise einen Agent (wie im vorherigen Beispiel gezeigt) mit dem Namen our-osx-agent
konfiguriert. In den folgenden Beispielen ist {tfs-name}
entweder:
Azure Pipelines: der Name Ihrer Organisation. Wenn Sie beispielsweise eine Verbindung zu
https://dev.azure.com/fabrikam
herstellen, ist der Dienstnamevsts.agent.fabrikam.our-osx-agent
.TFS: der Name Ihres lokalen TFS AT-Servers. Wenn Sie z. B. eine Verbindung mit
http://our-server:8080/tfs
herstellen, lautet der Dienstnamevsts.agent.our-server.our-osx-agent
Befehle
Zum Agentenverzeichnis wechseln
Wenn Sie beispielsweise im Unterordner myagent
Ihres Basisverzeichnisses installiert haben:
cd ~/myagent$
Installieren
Befehl:
./svc.sh install
Dieser Befehl erstellt eine launchd
-plist, die auf ./runsvc.sh
verweist. Dieses Skript richtet die Umgebung ein (weitere Details im folgenden Abschnitt) und startet den Host des Agents.
Start
Befehl:
./svc.sh start
Ausgabe:
starting vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist
Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}
Die linke Zahl ist die PID, wenn der Dienst ausgeführt wird. Wenn die zweite Zahl nicht null ist, ist ein Problem aufgetreten.
Status
Befehl:
./svc.sh status
Ausgabe:
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist
Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}
Die linke Zahl ist die PID, wenn der Dienst ausgeführt wird. Wenn die zweite Zahl nicht null ist, ist ein Problem aufgetreten.
Beenden
Befehl:
./svc.sh stop
Ausgabe:
stopping vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:
/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist
Stopped
Deinstallieren
Sie sollten aufhören, bevor Sie deinstallieren.
Befehl:
./svc.sh uninstall
Automatische Anmeldung und Sperre
Normalerweise wird der Agentdienst erst ausgeführt, nachdem sich der Benutzer angemeldet hat. Wenn der Agent-Dienst beim Neustart des Computers automatisch gestartet werden soll, können Sie den Computer so konfigurieren, dass er sich automatisch anmeldet und beim Start eine Sperre aktiviert. Weitere Informationen finden Sie unter Festlegen der automatischen Anmeldung beim Mac-Start – Apple Support.
Anmerkung
Weitere Informationen finden Sie im Blog Terminally Geeky: Automatische Anmeldung sicherer verwenden. Die in diesem Blog erwähnte PLIST-Datei ist möglicherweise nicht mehr über die Quelle verfügbar, aber eine Kopie können Sie hier finden: Lifehacker – Make OS X load your desktop before you log in.
Aktualisieren von Umgebungsvariablen
Wenn Sie den Dienst konfigurieren, benötigt er eine Momentaufnahme einiger nützlicher Umgebungsvariablen für Ihren aktuellen Anmeldebenutzer, z. B. PATH, LANG, JAVA_HOME, ANT_HOME und MYSQL_PATH. Wenn Sie die Variablen aktualisieren müssen (z. B. nach der Installation einiger neuer Software):
./env.sh
./svc.sh stop
./svc.sh start
Die Momentaufnahme der Umgebungsvariablen wird in der Datei .env
im Stammverzeichnis des Agents gespeichert; Sie können diese Datei auch direkt ändern, um Änderungen an den Umgebungsvariablen anzuwenden.
Ausführen von Anweisungen vor dem Starten des Diensts
Sie können auch eigene Anweisungen und Befehle festlegen, die beim Starten des Dienstes ausgeführt werden sollen. Sie können z. B. die Umgebung einrichten oder Skripts aufrufen.
Bearbeiten Sie
runsvc.sh
.Ersetzen Sie die folgende Zeile durch Ihre Anweisungen:
# insert anything to setup env when running as a service
Dienstdateien
Wenn Sie den Dienst installieren, werden einige Dienstdateien eingerichtet.
.plist-Dienstdatei
Es wird eine .plist-Dienstdatei erstellt.
~/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist
Zum Beispiel:
~/Library/LaunchAgents/vsts.agent.fabrikam.our-osx-agent.plist
./svc.sh install
generiert diese Datei aus dieser Vorlage: ./bin/vsts.agent.plist.template
.service file
./svc.sh start
findet den Dienst durch Lesen der .service
-Datei, die den Pfad zur oben beschriebenen plist-Dienstdatei enthält.
Alternative Servicemechanismen
Wir stellen Ihnen das ./svc.sh
-Skript als praktische Möglichkeit zum Ausführen und Verwalten Ihres Agenten als launchd
LaunchAgent-Dienst zur Verfügung. Sie können jedoch jede Art von Dienstmechanismus verwenden, den Sie bevorzugen.
Sie können die oben beschriebene Vorlage verwenden, um das Generieren anderer Arten von Dienstdateien zu vereinfachen. Beispielsweise ändern Sie die Vorlage so, dass ein Dienst generiert wird, der als Startdaemon ausgeführt wird, wenn Sie keine UI-Tests benötigen und keine automatische Anmeldung und Sperre konfigurieren möchten. Weitere Informationen finden Sie unter Bibliothek für Apple-Entwickler: Creating Launch Daemons and Agents.
Einen Agenten ersetzen
Um einen Agent zu ersetzen, führen Sie die Schritte unter Herunterladen und Konfigurieren des Agents erneut aus.
Wenn Sie einen Agent mit demselben Namen wie ein bereits vorhandener Agent konfigurieren, werden Sie gefragt, ob Sie den vorhandenen Agent ersetzen möchten. Wenn Sie Y
beantworten, stellen Sie sicher, dass Sie den Agent entfernen (siehe unten), den Sie ersetzen. Andernfalls wird einer der Agents nach einigen Minuten mit Konflikten heruntergefahren.
Entfernen und Neukonfigurieren eines Agents
So entfernen Sie den Agenten:
Beenden und deinstallieren Sie den Dienst, wie im vorherigen Abschnitt erläutert.
Entfernen Sie den Agenten.
./config.sh remove
Geben Sie Ihre Anmeldeinformationen ein.
Nachdem Sie den Agent entfernt haben, können Sie ihn erneut konfigurieren.
Unbeaufsichtigte Konfiguration
Der Agent kann aus einem Skript ohne menschliche Intervention eingerichtet werden.
Sie müssen --unattended
und die Antworten auf alle Fragen übergeben.
Um einen Agent zu konfigurieren, muss er die URL zu Ihrer Organisation oder Sammlung sowie die Anmeldeinformationen einer Person kennen, die zum Einrichten von Agents autorisiert ist.
Alle anderen Antworten sind optional.
Befehlszeilenparameter können stattdessen mithilfe einer Umgebungsvariablen angegeben werden: Geben Sie den Namen in Großbuchstaben ein, und stellen Sie VSTS_AGENT_INPUT_
voran.
Beispiel: VSTS_AGENT_INPUT_PASSWORD
statt --password
anzugeben.
Erforderliche Optionen
-
--unattended
: Bei der Einrichtung des Agents werden keine Informationen angefordert, 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.alt
(Standardauthentifizierung)
Authentifizierungsoptionen
- Wenn Sie
--auth pat
ausgewählt haben:--token <token>
– Gibt Ihr persönliches Zugriffstoken an.- PAT ist das einzige Schema, das mit Azure DevOps Services funktioniert.
- Wenn Sie
--auth negotiate
oder--auth alt
ausgewählt haben:--userName <userName>
– Gibt einen Benutzernamen an--password <password>
– Gibt ein Kennwort an.
Pool- und Agentnamen
--pool <pool>
– Poolname, dem der Agent beitreten soll-
--agent <agent>
: Agent-Name -
--replace
: Option zum Ersetzen des Agents in einem Pool. Wenn ein anderer Agent mit dem gleichen Namen lauscht, tritt ein Konflikt auf
Einrichtung des Agents
--work <workDirectory>
– Arbeitsverzeichnis, in dem Auftragsdaten gespeichert werden. Der Standardwert_work
befindet sich im Stammverzeichnis des Agent-Verzeichnisses. Das Arbeitsverzeichnis gehört einem bestimmten Agent und sollte nicht zwischen mehreren Agents geteilt werden.--acceptTeeEula
– Akzeptieren Sie den Team Explorer Everywhere Endbenutzer-Lizenzvertrag (nur macOS und Linux)-
--disableloguploads
: legt fest, dass die Ausgabe des Konsolenprotokolls nicht an den Server gestreamt oder gesendet werden soll. Stattdessen können Sie sie nach Abschluss des Auftrags aus dem Dateisystem des Agent-Hosts abrufen.
Nur für die Bereitstellungsgruppe
-
--deploymentGroup
: Konfiguriert den Agent als Bereitstellungsgruppen-Agent --deploymentGroupName <name>
– wird mit--deploymentGroup
verwendet, um die Bereitstellungsgruppe anzugeben, der der Agent beitreten soll.--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 zusammen mit--addDeploymentGroupTags
verwendet, um die durch Kommas getrennte Liste von Tags für den Bereitstellungsgruppen-Agent anzugeben, z. B. "web, db"
Nur für 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 (beispielsweise „web, db“)
./config.sh --help
listet immer die neuesten erforderlichen und optionalen Antworten auf.
Diagnostik
Wenn Sie Probleme mit Ihrem selbstgehosteten Agent haben, können Sie versuchen, Diagnosen auszuführen. Nach dem Konfigurieren des Agents:
./run.sh --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.
Netzwerkdiagnose für selbstgehostete Agents
Legen Sie den Wert von Agent.Diagnostic
auf fest true
, um zusätzliche Protokolle zu sammeln, die zur Behandlung von Netzwerkproblemen für selbstgehostete Agents verwendet werden können. Weitere Informationen finden Sie unter Netzwerkdiagnose für selbstgehostete Agents.
Hilfe zu anderen Optionen
Um sich über andere Optionen zu informieren:
./config.sh --help
Die Hilfe enthält Informationen zu Authentifizierungsalternativen und unbeaufsichtigter Konfiguration.
Fähigkeiten
Die Funktionen Ihres Agents werden katalogisiert und im Pool angekündigt, sodass ihm nur die Builds und Releases zugewiesen werden, die er bewältigen kann. Weitere Informationen finden Sie unter Funktionen von Build- und Release-Agents.
In vielen Fällen müssen Sie nach der Bereitstellung eines Agents Software oder Hilfsprogramme installieren. Im Allgemeinen sollten Sie auf Ihren Agenten die Software und Tools installieren, die Sie auf Ihrem Entwicklungscomputer verwenden.
Wenn Ihr Build beispielsweise die npm-Aufgabe enthält, wird der Build nur ausgeführt, wenn im Pool ein Build-Agent vorhanden ist, auf dem 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 übernehmen. Nachdem Sie neue Software auf einem Agent installiert haben, müssen Sie ihn neu starten, damit die neue Funktion im Pool angezeigt wird und 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
Wie kann ich sicherstellen, dass ich die neueste Agent-Version habe?
Navigieren Sie zur Registerkarte Agentpools:
Melden Sie sich bei Ihrer Organisation an (
https://dev.azure.com/{yourorganization}
).Wählen Sie Azure DevOps, Organisationseinstellungen aus.
Wählen Sie Agentpools aus.
Melden Sie sich bei Ihrer Projektsammlung unter
http://your-server/DefaultCollection
an.Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Klicken Sie auf den Pool, der den Agenten 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 Agent-Pool aus.
Wählen Sie Agents und dann den gewünschten Agent aus.
Wählen Sie die Registerkarte Funktionen aus.
Anmerkung
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 Agentpools den gewünschten Agentpool aus.
Wählen Sie Agents und dann den gewünschten Agent aus.
Wählen Sie die Registerkarte Funktionen aus.
Registerkarte "
Wählen Sie auf der Registerkarte Agentpools den gewünschten Agentpool aus.
Wählen Sie Agents und dann den gewünschten Agent aus.
Wählen Sie die Registerkarte Funktionen aus.
Suchen Sie nach der
Agent.Version
-Funktion. Sie können diesen Wert anhand der neuesten veröffentlichten Agent-Version überprüfen. Weitere Informationen finden Sie unter Azure Pipelines-Agent. Suchen Sie auf der Seite nach der höchsten Versionsnummer.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 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 des Servers mitgeliefert wurde. Dieses Szenario gilt auch, wenn der Server keinen Zugriff auf das Internet hat.
Laden Sie von einem Computer mit Internetzugang die neueste Version der Agent-Paketdateien (in .zip oder .tar.gz Form) von der seite Azure Pipelines Agent GitHub Releasesherunter.
Ü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 folgenden Ordner:
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- macOS:
usr/share/Microsoft/Azure DevOps/Agents
Erstellen Sie den Ordner Agents, wenn dieser nicht vorhanden ist.
- Sie sind fertig! Ihr Azure DevOps Server verwendet jetzt 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 Aktualisieren aller Agentsaus.
Wie kann ich sicherstellen, dass ich die neueste Agent-Version habe?
Navigieren Sie zur Registerkarte Agentpools:
Melden Sie sich bei Ihrer Organisation an (
https://dev.azure.com/{yourorganization}
).Wählen Sie Azure DevOps, Organisationseinstellungen aus.
Wählen Sie Agentpools aus.
Melden Sie sich bei Ihrer Projektsammlung unter
http://your-server/DefaultCollection
an.Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
de-DE:
Wählen Sie Azure DevOps > Sammlungseinstellungen aus.
Wählen Sie Agentpools aus.
Klicken Sie auf den Pool, der den Agenten 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 Agent-Pool aus.
Wählen Sie Agents und dann den gewünschten Agent aus.
Wählen Sie die Registerkarte Funktionen aus.
Anmerkung
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 Agentpools den gewünschten Agentpool aus.
Wählen Sie Agents und dann den gewünschten Agent aus.
Wählen Sie die Registerkarte Funktionen aus.
Registerkarte "
Wählen Sie auf der Registerkarte Agentpools den gewünschten Agentpool aus.
Wählen Sie Agents und dann den gewünschten Agent aus.
Wählen Sie die Registerkarte Funktionen aus.
Suchen Sie nach der
Agent.Version
-Funktion. Sie können diesen Wert anhand der neuesten veröffentlichten Agent-Version überprüfen. Weitere Informationen finden Sie unter Azure Pipelines-Agent. Suchen Sie auf der Seite nach der höchsten Versionsnummer.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 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 des Servers mitgeliefert wurde. Dieses Szenario gilt auch, wenn der Server keinen Zugriff auf das Internet hat.
Laden Sie von einem Computer mit Internetzugang die neueste Version der Agent-Paketdateien (in .zip oder .tar.gz Form) von der seite Azure Pipelines Agent GitHub Releasesherunter.
Ü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 folgenden Ordner:
- Windows:
%ProgramData%\Microsoft\Azure DevOps\Agents
- Linux:
usr/share/Microsoft/Azure DevOps/Agents
- macOS:
usr/share/Microsoft/Azure DevOps/Agents
Erstellen Sie den Ordner Agents, wenn dieser nicht vorhanden ist.
- Sie sind fertig! Ihr Azure DevOps Server verwendet jetzt 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 Aktualisieren aller Agentsaus.
Wo kann ich mehr darüber erfahren, wie der gestartete Dienst funktioniert?
Bibliothek für Apple-Entwickler: Creating Launch Daemons and Agents
Ich habe eine Firewall ausgeführt, 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 Packaging API für Organisationen, die die domäne {organization_name}.visualstudio.com verwenden |
https://{organization_name}.visualstudio.com |
Für Organisationen, die die domäne {organization_name}.visualstudio.com verwenden |
https://{organization_name}.vsblob.visualstudio.com |
Azure DevOps Telemetry für Organisationen, die die domäne {organization_name}.visualstudio.com verwenden |
https://{organization_name}.vsrm.visualstudio.com |
Release Management Services für Organisationen, die die domäne {organization_name}.visualstudio.com verwenden |
https://{organization_name}.vssps.visualstudio.com |
Azure DevOps Platform Services für Organisationen, die die domäne {organization_name}.visualstudio.com 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 domäne dev.azure.com verwenden |
https://*.vsassets.io |
Azure Artifacts über CDN |
https://*.vsblob.visualstudio.com |
Azure DevOps Telemetry für Organisationen, die die domäne dev.azure.com verwenden |
https://*.vssps.visualstudio.com |
Azure DevOps Platform Services für Organisationen, die die domäne dev.azure.com 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 domäne {organization_name}.visualstudio.com verwenden |
https://dev.azure.com |
Für Organisationen, die die domäne dev.azure.com verwenden |
https://login.microsoftonline.com |
Microsoft Entra-Anmeldung |
https://management.core.windows.net |
Azure-Verwaltungs-APIs |
https://vstsagentpackage.azureedge.net |
Agentpaket |
Um zu gewährleisten, dass Ihre Organisation mit vorhandenen Firewall- oder IP-Einschränkungen funktioniert, stellen Sie sicher, dass dev.azure.com
und *dev.azure.com
geöffnet sind, und aktualisieren Sie Ihre zugelassenen IP-Adressen basierend auf Ihrer IP-Version so, dass sie die folgenden IP-Adressen enthalten. Wenn sich die IP-Adressen 13.107.6.183
und 13.107.9.183
derzeit in der Positivliste befinden, lassen Sie sie dort, da sie nicht entfernt werden 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
Anmerkung
Weitere Informationen zu zulässigen Adressen finden Sie unter Zulässige Adresslisten und Netzwerkverbindungen.
Wie kann ich den Agent mit einem selbstsigniertem Zertifikat ausführen?
Ausführen des Agents mit selbstsigniertem Zertifikat
Wie kann ich den Agent hinter einem Webproxy ausführen?
Ausführen des Agents hinter einem Webproxy
Wie kann ich den Agent neu starten
Wenn Sie den Agenten interaktiv ausführen, lesen Sie bitte die Neustartanweisungen unter Interaktiv ausführen. Wenn Sie den Agent als Dienst ausführen, folgen Sie den Schritten zum Beenden und anschließendem Starten des Agents.
Wie kann ich den Agent so konfigurieren, dass ein Webproxy umgangen und eine Verbindung mit Azure Pipelines hergestellt wird?
Wenn der Agent Ihren Proxy umgehen und eine direkte 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 domäne *.visualstudio.com
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 domäne dev.azure.com
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 zu gewährleisten, dass Ihre Organisation mit vorhandenen Firewall- oder IP-Einschränkungen funktioniert, stellen Sie sicher, dass dev.azure.com
und *dev.azure.com
geöffnet sind, und aktualisieren Sie Ihre zugelassenen IP-Adressen basierend auf Ihrer IP-Version so, dass sie die folgenden IP-Adressen enthalten. Wenn sich die IP-Adressen 13.107.6.183
und 13.107.9.183
derzeit in der Positivliste befinden, lassen Sie sie dort, da sie nicht entfernt werden 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
Anmerkung
Mit diesem Verfahren kann der Agent einen Webproxy umgehen. Ihre Buildpipeline und Skripts müssen weiterhin die Umgehung Ihres Webproxys für jede Aufgabe und jedes Tool verarbeiten, die bzw. das Sie in Ihrem Build ausführen.
Wenn Sie beispielsweise eine NuGet-Aufgabe verwenden, müssen Sie Ihren Webproxy so konfigurieren, dass die Umgehung der URL für den Server unterstützt wird, der den nuGet-Feed hostet, den Sie verwenden.
Ich verwende TFS und die URLs in den obigen Abschnitten funktionieren für mich nicht. Wo erhalte ich Hilfe?
Ich verwende TFS lokal und ich sehe einige dieser Features nicht. Warum nicht?
Einige dieser Features sind nur für Azure Pipelines und noch nicht lokal verfügbar. Einige Features sind lokal verfügbar, wenn Sie auf die neueste Version von TFSaktualisiert haben.
TFVC-Voraussetzungen
Wenn Sie TFVC verwenden, benötigen Sie auch Oracle Java JDK 1.6 oder höher. (Die Oracle JRE und OpenJDK sind für diesen Zweck nicht ausreichend.)
Das TEE-Plug-In wird für TFVC-Funktionen verwendet. Es verfügt über eine EULA, die Sie während der Konfiguration akzeptieren müssen, wenn Sie beabsichtigen, mit TFVC zu arbeiten.
Da das TEE-Plug-In nicht mehr gewartet wird und einige veraltete Java-Abhängigkeiten enthält, ist es ab Agent 2.198.0 nicht mehr in der Agent-Distribution enthalten. Das TEE-Plug-In wird jedoch während der Ausführung der Checkoutaufgabe heruntergeladen, wenn Sie ein TFVC-Repository auschecken. Das TEE-Plug-In wird nach der Auftragsausführung entfernt.
Anmerkung
Hinweis: Aufgrund dieses Downloadmechanismus kann es sehr lange dauern, bis Ihre Checkoutaufgabe funktioniert.
Wenn der Agent hinter einem Proxy oder einer Firewall ausgeführt wird, müssen Sie den Zugriff auf die folgende Website sicherstellen: https://vstsagenttools.blob.core.windows.net/
. Das TEE-Plug-In wird von dieser Adresse heruntergeladen.
Wenn Sie einen selbst gehosteten Agenten verwenden und Probleme mit dem Herunterladen von TEE auftreten, können Sie TEE manuell installieren:
- Legen Sie die Umgebungs- oder Pipelinevariable
DISABLE_TEE_PLUGIN_REMOVAL
auftrue
fest. Diese Variable verhindert, dass der Agent das TEE-Plugin nach dem Checkout des TFVC-Repositories entfernt. - Laden Sie TEE-CLC Version 14.135.0 manuell von GitHub aus „Releases“ für Team Explorer Everywhere herunter.
- Extrahieren Sie den Inhalt des Ordners
TEE-CLC-14.135.0
in<agent_directory>/externals/tee
.