Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zarządzane pule DevOps umożliwiają uruchomienie skryptu programu PowerShell (Windows) lub skryptu powłoki Bash (Linux) dla obrazu w puli, zanim zostanie on przypisany agentowi do uruchomienia zadania. Ta funkcja umożliwia wykonywanie takich zadań, jak instalowanie zaufanych głównych urzędów certyfikacji i ustawianie zmiennych środowiskowych.
Ważna
Skrypty aprowizacji są obecnie dostępne w wersji zapoznawczej. Ta funkcja może ulec zmianie przed ogólną dostępnością.
Zarządzane pule DevOps używają tożsamości zarządzanej skojarzonej z twoją pulą do pobierania skryptów z usługi Azure Blob Storage na agenta oraz przesyłania dzienników skryptów aprowizacji do celów rozwiązywania problemów. Skrypt aprowizacji jest uruchamiany po uruchomieniu agenta i można skonfigurować agenta do ponownego uruchomienia po uruchomieniu skryptu.
Aby skonfigurować obraz zarządzanej puli DevOps w celu uruchomienia skryptu aprowizacji, wykonaj następujące kroki:
- Utwórz dwa kontenery obiektów blob na koncie Blob Storage: jeden dla skryptów aprowizacji i plików pomocniczych oraz jeden na potrzeby przekazywania dzienników skryptów aprowizacji. Prześlij skrypty aprowizacji i wszystkie pliki pomocnicze do kontenera obiektów blob dla skryptów.
- Powiąż tożsamość zarządzaną z pulą Managed DevOps Pool i przypisz wymagane role do tożsamości zarządzanej w odpowiednich zakresach, aby agent mógł odczytywać skrypty aprowizacji i przesyłać dzienniki skryptów aprowizacji.
- Skonfiguruj obrazy tak, aby używały żądanych skryptów aprowizacji.
Wymagania wstępne
- Konto usługi Azure Blob Storage. Obsługiwanym typem konta usługi Azure Storage dla skryptów aprowizujących pule Managed DevOps jest konto Standard ogólnego przeznaczenia w wersji 2.
- Zarządzana pula DevOps ze skojarzoną tożsamością zarządzaną. Jeśli zarządzana pula DevOps nie ma tożsamości zarządzanej, utwórz je, wykonując kroki opisane w temacie Konfigurowanie tożsamości zarządzanej dla zarządzanej puli DevOps.
Utwórz kontenery obiektów blob
Zarządzane pule DevOps pobierają skrypty aprowizacji i ich pliki pomocnicze z obiektów blob w kontenerze na koncie Blob Storage. Managed DevOps Pools wymaga dwóch kontenerów obiektów blob na koncie magazynu: jednego do pobierania skryptu aprowizacji i plików pomocniczych oraz jednego do przesyłania dzienników skryptu aprowizacji.
Utwórz następujące dwa kontenery obiektów blob na swoim koncie usługi Blob Storage.
| kontener usługi Blob Storage | Opis |
|---|---|
Kontener obiektów blob dla skryptów. Jeśli nie określisz nazwy niestandardowej w punkcie wejścia (provisioningScriptEntryPoint) podczas konfigurowania obrazu w celu uruchomienia skryptu aprowizacji, domyślną nazwą jest provisioningscript. |
Zawiera skrypt aprowizacji i wszystkie pliki pomocnicze. Skrypt aprowizacji musi mieć nazwę Startup.ps1 dla obrazów Windows lub Startup.sh obrazów systemu Linux. |
Kontener dzienników skryptu aprowizacyjnego. Nie można skonfigurować tej nazwy kontenera; musi mieć wartość mdpprovisioningscriptlogs.Zarządzane pule usługi DevOps mogą automatycznie utworzyć kontener obiektów blob mdpprovisioningscriptlogs, ale aby zachować zasadę najmniejszych uprawnień, zalecamy ręczne utworzenie kontenera mdpprovisioningscriptlogs. Aby uzyskać więcej informacji, zobacz Przypisywanie ról Azure do tożsamości zarządzanej. |
Zawiera dzienniki stdout i stderr wygenerowane przez skrypt aprowizacji oraz kopię skryptu. Nazwy obiektów blob wykorzystują nazwę komputera agenta jako katalog wirtualny. |
Prześlij skrypt aprowizacji i wszelkie pliki pomocnicze do kontenera obiektów blob scripts. Skrypt aprowizacji musi mieć nazwę Startup.ps1 dla obrazów Windows lub Startup.sh obrazów systemu Linux. Możesz dołączyć do obiektu blob wszystkie pliki pomocnicze wymagane przez skrypty. Po uruchomieniu agenta te pliki są pobierane do katalogu roboczego agenta, a skrypt aprowizacji jest wykonywany z tej lokalizacji.
Przypisz role platformy Azure do tożsamości zarządzanej
Managed DevOps Pools używa tożsamości zarządzanej do uzyskiwania dostępu do kontenerów blob dla skryptów aprowizacji i ich dzienników. Musisz skojarzyć tożsamość zarządzaną z pulą Managed DevOps i przypisać określone role do tej tożsamości zarządzanej w zakresach opisanych w tej sekcji. Jeśli zarządzana pula DevOps nie ma tożsamości zarządzanej, utwórz je, wykonując kroki opisane w temacie Konfigurowanie tożsamości zarządzanej dla zarządzanej puli DevOps.
- Jeśli pula Managed DevOps Pool ma jedną skojarzoną tożsamość zarządzaną, ta tożsamość jest używana do uzyskiwania dostępu do skryptu aprowizacji i kontenerów dzienników skryptu aprowizacji.
- Jeśli pula Managed DevOps ma więcej niż jedną skojarzoną zarządzaną tożsamość, podczas konfigurowania obrazu do używania skryptu aprowizacji należy wyznaczyć konkretną zarządzaną tożsamość, która ma być używana przez skrypty aprowizacji, określając właściwość Identyfikator klienta zarządzanej tożsamości (
provisioningScriptManagedIdentityResourceId).
Przypisz role z poniższej tabeli do tożsamości zarządzanej skojarzonej z pulą Managed DevOps w określonych zakresach, aby umożliwić agentowi pobieranie skryptów i przesyłanie dzienników skryptu aprowizacji. Aby uzyskać więcej informacji na temat przypisywania ról Azure, zobacz Kroki przypisywania roli Azure.
| roli | Scope |
|---|---|
| Czytnik danych Storage Blob | Zakres kontenera obiektów blob dla skryptu. Jeśli nie określisz nazwy w punkcie wejścia (provisioningScriptEntryPoint) podczas konfigurowania obrazu w celu uruchomienia skryptu aprowizacji, domyślną nazwą jest provisioningscript. |
| Współautor danych Storage Blob | W przypadku dostępu z najniższymi uprawnieniami ręcznie utwórz kontener dzienników skryptów aprowizacji (mdpprovisioningscriptlogs) i przypisz rolę do tożsamości zarządzanej w tym zakresie kontenera obiektów blob.Jeśli chcesz, aby usługa Managed DevOps Pools utworzyła kontener, przypisz rolę do tożsamości zarządzanej na poziomie konta magazynu. Jeśli przypiszesz rolę Współautor danych obiektu blob usługi Storage na poziomie konta magazynu, nie musisz przypisywać roli Czytelnik danych obiektu blob usługi Storage na poziomie kontenera skryptu. |
Skonfiguruj obraz, aby używał skryptu aprowizującego
Aby użyć skryptu aprowizacji z obrazem, skonfiguruj następujące właściwości obrazu.
| Property | Opis |
|---|---|
Identyfikator zasobu konta magazynuprovisioningScriptStorageAccountResourceId |
Wymagane. Identyfikator zasobu konta magazynu, które zawiera kontener skryptu (nazwa domyślna: mdpprovisioningscriptlogs) oraz kontener provisioningscript. |
punkt wejściaprovisioningScriptEntryPoint |
Nazwa kontenera obiektów blob, który zawiera skrypt aprowizacji i pliki pomocnicze. Jeśli nie określisz wartości, wartość domyślna to provisioningscript. |
Identyfikator klienta tożsamości zarządzanejprovisioningScriptManagedIdentityClientId |
Wymagane, jeśli pula jest powiązana z więcej niż jedną tożsamością zarządzaną. Identyfikator klienta tożsamości zarządzanej, który ma być używany do uzyskiwania dostępu do obiektów blob w kontenerach skryptu i aprowizacji dzienników skryptów. Jeśli pula Managed DevOps Pool ma więcej niż jedną skojarzoną tożsamość zarządzaną, musisz określić, której z nich należy tutaj użyć. Jeśli pula ma tylko jedną tożsamość, ta właściwość jest opcjonalna. |
Uruchom ponownie po wykonaniu skryptuprovisioningScriptShouldRestart |
Czy agent powinien zostać uruchomiony ponownie po uruchomieniu skryptu aprowizacji i przed wysłaniem zadań do agenta. Jeśli nie określisz wartości, wartość domyślna to false.Ponowne uruchamianie po wykonaniu skryptu zwiększa czas aprowizacji i powinno być wykonywane tylko wtedy, gdy skrypt aprowizacji wprowadza zmiany, które wymagają ponownego uruchomienia, aby zaczęły obowiązywać. |
Note
Skrypty aprowizacji są dostępne w wersji 2026-06-02 interfejsu API lub nowszej.
Jeśli zaktualizujesz pulę przy użyciu poprzedniej wersji interfejsu API po skonfigurowaniu skryptów aprowizacji, ustawienia skryptu aprowizacji nie zostaną zachowane.
Aby skonfigurować ustawienia skryptu aprowizacji dla obrazu, przejdź do sekcji Obrazy ustawień puli i wybierz pozycję ...>Konfigurowanie skryptu aprowizacji.
Dodaj lub zaktualizuj ustawienia skryptu aprowizacji dla obrazu i wybierz pozycję Zapisz.
Błędy konfiguracyjne
W poniższej tabeli wymieniono kody błędów i opisy skryptu aprowizacji.
| Kod błędu | Opis |
|---|---|
ProvisioningScriptDownloadFailed |
Nie udało się pobrać skryptu aprowizacji do maszyny podczas aprowizacji. |
ProvisioningScriptAccessFailed |
Proces aprowizacji nie mógł uzyskać dostępu do skryptu aprowizacji. Zazwyczaj ten błąd występuje z powodu problemu z dostępem lub uprawnieniami podczas pobierania skryptu. |
ProvisioningScriptExecutionFailed |
Skrypt aprowizacji został pobrany, ale nie powiódł się podczas uruchamiania na maszynie. |
ProvisioningScriptLogUploadFailed |
Proces aprowizacji wygenerował dzienniki skryptu aprowizacji, ale nie mógł ich przesłać. |
Dzienniki skryptu inicjowania obsługi
Dzienniki skryptów aprowizacji zawierają standardowe dane wyjściowe (stdout) i błąd standardowy (stderr) wygenerowany przez skrypt. Zarządzane pule DevOps zapisują te dzienniki w kontenerze obiektów blob mdpprovisioningscriptlogs na wskazanym koncie magazynu. Obiekty blob są zorganizowane w katalogu wirtualnym, którego nazwa ma format mdp-{poolName}-{agentMachineName}. Ten katalog wirtualny zawiera output katalog wirtualny z plikami stderr.log i stdout.log oraz script katalog wirtualny z kopią uruchomionego skryptu.
Zarządzane pule DevOps nie zarządzają tymi dziennikami, dlatego należy zarządzać okresem ich przechowywania na swoim koncie magazynu za pomocą zasad zarządzania cyklem życia usługi Azure Blob Storage. Poniższe przykładowe zasady o nazwie DeleteOldMDPLogs usuwają obiekty blob dziennika trzy dni po ich ostatniej modyfikacji.
{
"rules": [
{
"enabled": true,
"name": "DeleteOldMDPLogs",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 3
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"mdpprovisioningscriptlogs/"
]
}
}
}
]
}
Możesz uzyskać pomoc dotyczącą sztucznej inteligencji od GitHub Copilot do tworzenia zasad zarządzania cyklem życia Azure Blob Storage. Dostosuj następujący monit, aby utworzyć zasady zarządzania cyklem życia Azure Blob Storage.
Build an Azure Blob Storage lifecycle management policy named DeleteOldMDPLogs that deletes logs after three days.
Aby uzyskać więcej informacji na temat zasad generowanych przez Copilot, możesz poprosić Copilot o podanie wyjaśnienia wygenerowanych zasad w wierszu polecenia.
Copilot jest obsługiwany przez sztuczną inteligencję, więc możliwe są niespodzianki i błędy. Aby uzyskać więcej informacji, zobacz Copilot — często zadawane pytania.
Aby uzyskać więcej informacji, zobacz Azure Blob Storage zasady zarządzania cyklem życia i Konfigurowanie zasad zarządzania cyklem życia.