Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwaltete DevOps-Pools bieten die Möglichkeit, ein PowerShell-Skript (Windows) oder ein Bash-Skript (Linux) für ein Image in einem Pool auszuführen, bevor es einem Agent zum Ausführen eines Auftrags zugewiesen wird. Dieses Feature ermöglicht Szenarien wie das Installieren von vertrauenswürdigen Stamm-CAs und Festlegen von Umgebungsvariablen.
Important
Bereitstellungsskripts befinden sich derzeit in der Vorschau. Das Feature kann sich vor der allgemeinen Verfügbarkeit ändern.
Verwaltete DevOps-Pools verwenden eine verwaltete Identität, die Ihrem Pool zugeordnet ist, um die Skripts von Azure Blob Storage in den Agent herunterzuladen und Bereitstellungsskriptprotokolle zur Problembehandlung hochzuladen. Das Bereitstellungsskript wird ausgeführt, wenn der Agent gestartet wird, und Sie können den Agent so konfigurieren, dass er neu gestartet wird, nachdem das Skript ausgeführt wurde.
Führen Sie die folgenden Schritte aus, um ein Verwaltetes DevOps-Poolimage zum Ausführen eines Bereitstellungsskripts zu konfigurieren:
- Erstellen Sie zwei BLOB-Container in einem Blob Storage Konto: eines für die Bereitstellungsskripts und unterstützende Dateien und eines zum Hochladen von Bereitstellungsskriptprotokollen. Laden Sie Ihre Bereitstellungsskripts und alle unterstützenden Dateien in den Skript-BLOB-Container hoch.
- Ordnen Sie Ihrer verwalteten DevOps-Pool eine verwaltete Identität zu, und weisen Sie der verwalteten Identität die erforderlichen Rollen in den entsprechenden Bereichen zu, damit der Agent die Bereitstellungsskripts lesen und Bereitstellungsskriptprotokolle hochladen kann.
- Konfigurieren Sie Ihre Bilder so, dass die gewünschten Bereitstellungsskripts verwendet werden.
Voraussetzungen
- Ein Azure Blob Storage-Konto. Der unterstützte Azure Storage Kontotyp für Bereitstellungsskripts für verwaltete DevOps-Pools ist Standard general-purpose v2.
- Ein verwalteter DevOps-Pool mit einer zugeordneten verwalteten Identität. Wenn Ihr verwalteter DevOps-Pool nicht über eine verwaltete Identität verfügt, erstellen Sie eine, indem Sie die Schritte unter Konfigurieren einer verwalteten Identität für Ihren verwalteten DevOps-Pool ausführen.
Die Blob-Container erstellen
Verwaltete DevOps-Pools laden Bereitstellungsskripts und ihre unterstützenden Dateien aus Blobs in einem Container in einem Blob Storage-Konto herunter. Verwaltete DevOps-Pools erfordern zwei BLOB-Container im Speicherkonto: eines zum Herunterladen des Bereitstellungsskripts und der unterstützenden Dateien und eines zum Hochladen von Bereitstellungsskriptprotokollen.
Erstellen Sie die folgenden beiden Blobcontainer in Ihrem Blob Storage Konto.
| Blob Storage-Container | Description |
|---|---|
Skript-Blob-Container. Wenn Sie beim Konfigurieren des Images zum Ausführen eines Bereitstellungsskripts keinen benutzerdefinierten Namen in Einstiegspunkt (provisioningScriptEntryPoint) angeben, lautet provisioningscriptder Standardname . |
Enthält das Bereitstellungsskript und alle unterstützenden Dateien. Das Bereitstellungsskript muss für Windows-Images Startup.sh oder für Linux-Images Startup.ps1 heißen. |
Bereitstellen des Skriptprotokollcontainers. Sie können diesen Containernamen nicht konfigurieren. es muss sein mdpprovisioningscriptlogs.Verwaltete DevOps-Pools können den mdpprovisioningscriptlogs BLOB-Container automatisch erstellen. Für den Zugriff auf die geringsten Rechte wird jedoch empfohlen, den mdpprovisioningscriptlogs Container manuell zu erstellen. Weitere Informationen finden Sie unter Azure-Rollen der verwalteten Identität zuweisen. |
Enthält die durch das Bereitstellungsskript erzeugten stdout und stderr Protokolle sowie eine Kopie des Skripts. Die Blobnamen verwenden den Computernamen des Agents als virtuelles Verzeichnis. |
Laden Sie Ihr Bereitstellungsskript und alle unterstützenden Dateien in den Skript-BLOB-Container hoch. Das Bereitstellungsskript muss für Windows-Images Startup.sh und für Linux-Images Startup.ps1 heißen. Sie können alle unterstützenden Dateien einschließen, die von den Skripts im Blob benötigt werden. Wenn der Agent gestartet wird, werden diese Dateien in das Arbeitsverzeichnis des Agents heruntergeladen, und das Bereitstellungsskript wird von diesem Speicherort aus ausgeführt.
Azure-Rollen der verwalteten Identität zuweisen
Verwaltete DevOps-Pools verwenden eine verwaltete Identität, um auf die BLOB-Container für die Bereitstellungsskripts und Bereitstellungsskriptprotokolle zuzugreifen. Sie müssen Ihrem Managed DevOps-Pool eine verwaltete Identität zuordnen und der verwalteten Identität in den in diesem Abschnitt beschriebenen Gültigkeitsbereichen die angegebenen Rollen zuweisen. Wenn Ihr verwalteter DevOps-Pool nicht über eine verwaltete Identität verfügt, erstellen Sie eine, indem Sie die Schritte unter Konfigurieren einer verwalteten Identität für Ihren verwalteten DevOps-Pool ausführen.
- Wenn Ihr verwalteter DevOps-Pool über eine einzelne zugeordnete verwaltete Identität verfügt, wird diese Identität verwendet, um auf das Bereitstellungsskript und die Container für die Bereitstellungsskriptprotokolle zuzugreifen.
- Wenn Ihr verwalteter DevOps-Pool über mehr als eine zugeordnete verwaltete Identität verfügt, legen Sie eine bestimmte verwaltete Identität fest, die für die Bereitstellung von Skripts verwendet werden soll, indem Sie die Eigenschaft verwaltete Identitätsclient-ID (
provisioningScriptManagedIdentityResourceId) angeben, wenn Sie Ihr Image für die Verwendung eines Bereitstellungsskripts konfigurieren.
Weisen Sie die Rollen in der folgenden Tabelle der zugeordneten verwalteten Identität des verwalteten DevOps-Pools in den angegebenen Bereichen zu, damit der Agent die Skripts herunterladen und die Bereitstellungsskriptprotokolle hochladen kann. Weitere Informationen zum Zuweisen Azure Rollen finden Sie in den Schritten zum Zuweisen einer Azure Rolle.
| Role | Geltungsbereich |
|---|---|
| Leser von Speicherblobdaten | Bereich des Skript-Blob-Containers. Wenn Sie beim Konfigurieren Ihres Images keinen Namen in Entry Point (provisioningScriptEntryPoint) angeben, um ein Bereitstellungsskript auszuführen, lautet provisioningscriptder Standardname . |
| Mitwirkender an Speicherblobdaten | Erstellen Sie für den Zugriff mit den geringstmöglichen Berechtigungen den Container für Bereitstellungsskriptprotokolle (mdpprovisioningscriptlogs) manuell, und weisen Sie der verwalteten Identität im Bereich dieses Blobcontainers die Rolle zu.Wenn Managed DevOps Pools den Container erstellen sollen, weisen Sie der verwalteten Identität die Rolle im Bereich des Speicherkontos zu. Wenn Sie die Rolle "Storage Blob Data Contributor" im Bereich des Speicherkontos zuweisen, müssen Sie die Rolle "Storage Blob Data Reader" nicht im Skriptcontainerbereich zuweisen. |
Konfigurieren Sie Ihr Image zur Verwendung mit dem Bereitstellungsskript.
Um ein Bereitstellungsskript mit einem Bild zu verwenden, konfigurieren Sie die folgenden Bildeigenschaften.
| Property | Description |
|---|---|
Ressourcen-ID des SpeicherkontosprovisioningScriptStorageAccountResourceId |
Erforderlich. Die Ressourcen-ID des Speicherkontos, das den Skriptcontainer (Standardname provisioningscript) und den mdpprovisioningscriptlogs Container enthält. |
EinstiegspunktprovisioningScriptEntryPoint |
Der Name des BLOB-Containers, der das Bereitstellungsskript und unterstützende Dateien enthält. Wenn Sie keinen Wert angeben, ist der Standardwert provisioningscript. |
Client-ID für verwaltete IdentitätprovisioningScriptManagedIdentityClientId |
Erforderlich , wenn Ihr Pool mehreren verwalteten Identitäten zugeordnet ist. Die Client-ID der verwalteten Identität, die für den Zugriff auf die Blobs in den Protokollcontainern für Skripte und Bereitstellungsskripts verwendet werden soll. Wenn Ihr verwalteter DevOps-Pool mehr als eine zugeordnete verwaltete Identität aufweist, müssen Sie angeben, welche hier verwendet werden soll. Wenn Ihr Pool nur eine Identität aufweist, ist diese Eigenschaft optional. |
Nach Skriptausführung neu startenprovisioningScriptShouldRestart |
Gibt an, ob der Agent nach dem Ausführen des Bereitstellungsskripts und vor dem Senden von Aufträgen an den Agent neu gestartet werden soll. Wenn Sie keinen Wert angeben, ist der Standardwert false.Ein Neustart nach Ausführung des Skripts erhöht die Bereitstellungszeit und sollte nur dann erfolgen, wenn das Bereitstellungsskript Änderungen vornimmt, die erst nach einem Neustart wirksam werden. |
Note
Bereitstellungsskripts sind in api-Version 2026-06-02 oder höher verfügbar.
Wenn Sie Ihren Pool mithilfe einer früheren API-Version aktualisieren, nachdem Sie Bereitstellungsskripts konfiguriert haben, bleiben die Bereitstellungsskripteinstellungen nicht erhalten.
Um die Bereitstellungsskripteinstellungen für ein Image zu konfigurieren, wechseln Sie zum Abschnitt "Bilder " der Pooleinstellungen, und wählen Sie ...>Konfigurieren des Bereitstellungsskripts.
Fügen Sie die Bereitstellungsskripteinstellungen für das Bild hinzu, oder aktualisieren Sie sie, und wählen Sie "Speichern" aus.
Bereitstellungsfehler
In der folgenden Tabelle sind Fehlercodes und Beschreibungen für die Bereitstellung von Skripts aufgeführt.
| Fehlercode | Description |
|---|---|
ProvisioningScriptDownloadFailed |
Das Bereitstellungsskript konnte während der Bereitstellung nicht auf den Computer heruntergeladen werden. |
ProvisioningScriptAccessFailed |
Der Bereitstellungsprozess konnte nicht auf das Bereitstellungsskript zugreifen. Normalerweise tritt dieser Fehler aufgrund eines Zugriffs- oder Berechtigungsproblems beim Abrufen des Skripts auf. |
ProvisioningScriptExecutionFailed |
Das Bereitstellungsskript wurde heruntergeladen, ist jedoch beim Ausführen auf dem Computer fehlgeschlagen. |
ProvisioningScriptLogUploadFailed |
Der Bereitstellungsprozess generierte Bereitstellungsskriptprotokolle, konnte sie jedoch nicht hochladen. |
Bereitstellen von Skriptprotokollen
Bereitstellungsskriptprotokolle enthalten die vom Skript generierten Standardausgabe (stdout) und standardfehler (stderr). Verwaltete DevOps-Pools schreiben diese Protokolle in den mdpprovisioningscriptlogs Blobcontainer im von Ihnen angegebenen Speicherkonto. Die Blobs sind unter einem virtuellen Verzeichnis organisiert, dessen Name das Format mdp-{poolName}-{agentMachineName}verwendet. Dieses virtuelle Verzeichnis enthält ein output virtuelles Verzeichnis mit stderr.log und stdout.log Dateien sowie ein script virtuelles Verzeichnis mit einer Kopie des ausgeführten Skripts.
Verwaltete DevOps-Pools verwalten diese Protokolle nicht, daher müssen Sie ihre Aufbewahrung in Ihrem Speicherkonto mithilfe von Azure Blob Storage Lifecycle-Verwaltungsrichtlinien verwalten. Die folgende Beispielrichtlinie mit dem Namen DeleteOldMDPLogs löscht Protokollblobs drei Tage nach der letzten Änderung.
{
"rules": [
{
"enabled": true,
"name": "DeleteOldMDPLogs",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 3
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"mdpprovisioningscriptlogs/"
]
}
}
}
]
}
Sie können KI-Unterstützung von GitHub Copilot erhalten, um Azure Blob Storage Lifecycle Management-Richtlinien zu erstellen. Passen Sie die folgende Eingabeaufforderung an, um Azure Blob Storage Lebenszyklusverwaltungsrichtlinien zu erstellen.
Build an Azure Blob Storage lifecycle management policy named DeleteOldMDPLogs that deletes logs after three days.
Um weitere Details zu der von Copilot generierten Richtlinie zu erhalten, können Sie Copilot bitten, eine Erläuterung der generierten Richtlinie in Ihrer Eingabeaufforderung bereitzustellen.
Copilot wird von KI unterstützt. Daher sind Überraschungen und Fehler möglich. Weitere Informationen finden Sie in den häufig gestellten Fragen zur allgemeinen Verwendung von Copilot.
Weitere Informationen finden Sie unter Azure Blob Storage Lifecycle Management-Richtlinien und Konfigurieren einer Lifecycle Management-Richtlinie.