Problembehandlung für Azure VM Image Builder
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
Verwenden Sie die Informationen in diesem Artikel, um häufige Probleme zu beheben, die bei der Verwendung von Azure VM Image Builder auftreten können.
Voraussetzungen
Wenn Sie einen Build erstellen, beachten Sie Folgendes:
- Der VM Image Builder-Dienst kommuniziert über WinRM oder Secure Shell (SSH) mit der Build-VM. Deaktivieren Sie diese Einstellungen im Rahmen des Builds nicht.
- VM Image Builder erstellt Ressourcen in der Staging-Ressourcengruppe als Teil der Builds. Die genaue Liste der Ressourcen hängt von der Netzwerkkonfiguration ab, die in der Imagevorlage angegeben ist. Vergewissern Sie sich, dass Azure Policy nicht verhindert, dass VM Image Builder erforderliche Ressourcen erstellt oder verwendet.
- Erstellen Sie eine Ressourcengruppe mit dem Präfix „IT_“.
- Erstellen Sie ein Speicherkonto ohne Firewall.
- Stellen Sie Azure Container Instances bereit.
- Stellen Sie Azure Virtual Network-Ressourcen (und Subnetze darin) bereit.
- Stellen Sie private Azure-Endpunktressourcen bereit.
- Stellen Sie Azure Files bereit.
- Stellen Sie sicher, dass Azure Policy keine unbeabsichtigten Features wie z. B. Azure-Erweiterungen auf der Build-VM installiert.
- Stellen Sie sicher, dass VM Image Builder über die richtigen Berechtigungen zum Lesen/Schreiben von Images und zum Herstellen einer Verbindung mit dem Speicherkonto verfügt. Weitere Informationen finden Sie in der Dokumentation zu Berechtigungen für die Azure CLI oder Azure PowerShell.
- VM Image Builder kann den Build nicht erstellen, wenn bei den Skripts oder Inlinebefehlen Fehler auftreten (Exitcodes ungleich 0). Stellen Sie sicher, dass Sie die benutzerdefinierten Skripts getestet und verifiziert haben, dass sie ohne Fehler ausgeführt werden (Exitcode 0) und keine Benutzereingaben erfordern. Weitere Informationen finden Sie unter Erstellen eines Azure Virtual Desktop-Images mit VM Image Builder und PowerShell.
- Stellen Sie sicher, dass Ihr Abonnement über ein ausreichendes Kontingent an Azure-Containerinstanzen verfügt.
- Jeder Imagebuild kann bis zu einer temporären Azure Container Instance-Ressource (mit vier Standardkernen) in der Stagingressourcengruppe bereitstellen. Diese Ressourcen sind für isolierte Imagebuilds erforderlich.
Fehler bei VM Image Builder können in zwei Bereichen auftreten:
- Während der Übermittlung von Imagevorlagen
- Während der Imageerstellung
Hinweis
Von CIS verwaltete und CIS-gehärtete Images (Linux oder Windows) im Azure Marketplace können aufgrund ihrer Konfigurationen Buildfehler mit dem Azure Image Builder-Dienst verursachen. Beispiel:
- CIS-gehärtete Windows-Images unterbrechen möglicherweise die WinRM-Konnektivität, die eine der Voraussetzungen für AIB-Builds sind.
- CIS-Linux-Images können aufgrund von
chmod +x
-Berechtigungsproblemen zu Fehlern führen.
Problembehandlung bei der Übermittlung von Imagevorlagen
Fehler bei der Übermittlung von Imagevorlagen werden nur bei der Übermittlung zurückgegeben. Das heißt, es gibt kein Fehlerprotokoll für Fehler bei der Übermittlung von Imagevorlagen. Wenn bei der Übermittlung ein Fehler aufgetreten ist, können Sie diesen zurückgeben, indem Sie den Status der Vorlage überprüfen, insbesondere ProvisioningState
und ProvisioningErrorMessage
/provisioningError
.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Hinweis
Für PowerShell müssen Sie die PowerShell-Module von VM Image Builder installieren.
Wichtig
Mit der API-Version 2021-10-01 wurde eine Änderung am Fehlerschema eingeführt, die für alle künftigen API-Releases gilt. Falls Sie über Azure VM Image Builder-Automatisierungen verfügen, beachten Sie die neue Fehlerausgabe, wenn Sie zur API-Version 2021-10-01 oder höher wechseln. Es wird empfohlen, nach dem Wechsel zur neuesten API-Version nicht wieder zu einer früheren Version zurückzukehren, da Sie die Automatisierung erneut ändern müssten, um das frühere Fehlerschema zu erzeugen. Wir rechnen nicht damit, dass sich das Fehlerschema in zukünftigen Releases erneut ändert.
Fehlerausgabe für Version 2020-02-14 und früher
{
"code": "ValidationFailed",
"message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review http://aka.ms/azvmimagebuildertmplref for details on fields requirements in the Image Builder Template."
}
Fehlerausgabe für Version 2021-10-01 und höher
{
"error": {
"code": "ValidationFailed",
"message": "Validation failed: 'ImageTemplate.properties.source': Field 'imageId' has a bad value: '/subscriptions/subscriptionID/resourceGroups/resourceGroupName/providers/Microsoft.Compute/images/imageName'. Please review http://aka.ms/azvmimagebuildertmplref for details on fields requirements in the Image Builder Template."
}
}
In den folgenden Abschnitten finden Sie Anleitungen zur Problembehandlung für häufige Fehler bei der Übermittlung von Imagevorlagen.
Ein Update oder Upgrade von Imagevorlagen wird derzeit nicht unterstützt
Fehler
'Conflict'. Details: Update/Upgrade of image templates is currently not supported
Ursache
Die Vorlage ist bereits vorhanden.
Lösung
Wenn Sie eine Imagekonfigurationsvorlage übermitteln und die Übermittlung fehlschlägt, gibt es immer noch ein fehlerhaftes Vorlagenartefakt. Löschen Sie die fehlerhafte Vorlage.
Neuzuweisen von MSIs für Imagevorlagen
Fehler
The assigned managed identity cannot be used. Please remove the existing one and re-assign a new identity. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts.
Ursache
In bestimmten Fällen können verwaltete Dienstidentitäten (Managed Service Identities, MSIs), die der Imagevorlage zugewiesen sind, nicht verwendet werden:
- Die Image Builder-Vorlage verwendet eine vom Kunden bereitgestellte Stagingressourcengruppe, und die MSI wird vor der Imagevorlage gelöscht (Szenario Stagingressourcengruppe).
- Die erstellten verwaltete Dienstidentitäten (Managed Service Identities, MSI), die der Imagevorlage zugewiesen sind, können nicht verwendet werden.
Lösung
Verwenden Sie die Azure CLI, um die Identität für die Imagevorlage zurückzusetzen. Aktualisieren Sie die Azure CLI mindestens auf die Version 2.45.0.
Entfernen Sie die verwaltete Identität aus der Image Builder-Zielvorlage.
az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>
Weisen Sie die verwaltete Identität wieder der Image Builder-Zielvorlage zu.
az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>
Der Ressourcenvorgang wurde mit dem finalen Bereitstellungsstatus „Fehler“ abgeschlossen.
Fehler
Microsoft.VirtualMachineImages/imageTemplates 'helloImageTemplateforSIG01' failed with message '{
"status": "Failed",
"error": {
"code": "ResourceDeploymentFailure",
"message": "The resource operation completed with terminal provisioning state 'Failed'.",
"details": [
{
"code": "InternalOperationError",
"message": "Internal error occurred."
Ursache
In den meisten Fällen tritt der Fehler bei der Ressourcenbereitstellung aufgrund fehlender Berechtigungen auf. Dieser Fehler kann auch durch einen Konflikt mit der Stagingressourcengruppe verursacht werden.
Lösung
Je nach Szenario benötigt VM Image Builder möglicherweise Berechtigungen für Folgendes:
- Das Quellimage oder die Azure Compute Gallery (früher als Shared Image Gallery bezeichnet)
- Das Distributionsimage oder die Azure Compute Gallery-Ressource
- Das Speicherkonto, der Container oder das Blob, auf das bzw. den die
File
-Anpassung zugreift
Stellen Sie außerdem sicher, dass der Name der Stagingressourcengruppe für jede Imagevorlage eindeutig ist.
Weitere Informationen zum Konfigurieren von Berechtigungen finden Sie unter Konfigurieren der VM Image Builder-Berechtigungen mithilfe der Azure CLI oder Konfigurieren der VM Image Builder-Berechtigungen mithilfe von PowerShell.
Fehler beim Abrufen eines verwalteten Images
Fehler
Build (Managed Image) step failed: Error getting Managed Image '/subscriptions/.../providers/Microsoft.Compute/images/mymanagedmg1': Error getting managed image (...): compute.
ImagesClient#Get: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error.
Status=403 Code="AuthorizationFailed" Message="The client '......' with object id '......' doesn't have authorization to perform action 'Microsoft.Compute/images/read' over scope
Ursache
Fehlende Berechtigungen.
Lösung
Je nach Szenario benötigt VM Image Builder möglicherweise Berechtigungen für Folgendes:
- Das Quellimage oder die Azure Compute Gallery-Ressourcengruppe
- Das Distributionsimage oder die Azure Compute Gallery-Ressource
- Das Speicherkonto, der Container oder das Blob, auf das bzw. den die
File
-Anpassung zugreift
Weitere Informationen zum Konfigurieren von Berechtigungen finden Sie unter Konfigurieren der VM Image Builder-Berechtigungen mithilfe der Azure CLI oder Konfigurieren der VM Image Builder-Berechtigungen mithilfe von PowerShell.
Fehler beim Buildschritt für die Imageversion
Fehler
Build (Shared Image Version) step failed for Image Version '/subscriptions/.../providers/Microsoft.Compute/galleries/.../images/... /versions/0.23768.4001': Error getting Image Version '/subscriptions/.../resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001': Error getting image version '... :0.23768.4001': compute.GalleryImageVersionsClient#Get: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error.
Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Compute/galleries/.../images/.../versions/0.23768.4001' under resource group '<rgName>' was not found."
Ursache
VM Image Builder kann das Quellimage nicht finden.
Lösung
Stellen Sie sicher, dass das Quellimage fehlerfrei und im Speicherort von VM Image Builder vorhanden ist.
Herunterladen einer externen Datei in eine lokale Datei
Fehler
Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..
Ursache
Der Dateiname oder der Speicherort ist falsch, oder der Speicherort ist nicht erreichbar.
Lösung
Stellen Sie sicher, dass die Datei erreichbar ist. Vergewissern Sie sich, dass Name und Speicherort korrekt angegeben sind.
Autorisierungsfehler beim Erstellen des Datenträgers
Der Azure Image Builder-Build schlägt mit einem Autorisierungsfehler fehl, der wie folgt aussieht:
Fehler
Attempting to deploy created Image template in Azure fails with an 'The client '6df325020-fe22-4e39-bd69-10873965ac04' with object id '6df325020-fe22-4e39-bd69-10873965ac04' does not have authorization to perform action 'Microsoft.Compute/disks/write' over scope '/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/disks/proxyVmDiskWin_<timestamp>' or the scope is invalid. If access was recently granted, please refresh your credentials.'
Ursache
Dieser Fehler wird verursacht, wenn Sie versuchen, eine vorhandene Ressourcengruppe und VNet für den Azure Image Builder-Dienst mit einem Windows-Quellimage anzugeben.
Lösung
Sie müssen der Ressourcengruppe für den Dienstprinzipal, der der Erstanbieter-App von Azure Image Builder entspricht, die Rolle „Mitwirkender“ zuweisen, indem Sie den CLI-Befehl oder die nachstehenden Portalanweisungen verwenden.
Überprüfen Sie zunächst mit dem folgenden CLI-Befehl, ob der Dienstprinzipal der Erstanbieter-App von Azure Image Builder zugeordnet ist:
az ad sp show --id {servicePrincipalName, or objectId}
Verwenden Sie dann den folgenden Befehl, um diese Lösung mithilfe der CLI zu implementieren:
az role assignment create -g {ResourceGroupName} --assignee {AibrpSpOid} --role Contributor
Befolgen Sie zum Implementieren dieser Lösung im Portal die Anweisungen in dieser Dokumentation: Zuweisen von Azure-Rollen mithilfe des Azure-Portals – Azure RBAC.
Für Schritt 1: Identifizieren des erforderlichen Bereichs: Der erforderliche Bereich ist Ihre Ressourcengruppe.
Für Schritt 3: Auswahl der geeigneten Rolle: Die Rolle ist Mitwirkender.
Für Schritt 4: Auswählen, wer Zugriff benötigt: Wählen Sie das Element „Azure Virtual Machine Image Builder“ aus.
Fahren Sie dann mit Schritt 6: Rolle zuweisen fort, um die Rolle zuzuweisen.
Beheben von Buildfehlern
Treten Fehler bei der Imageerstellung auf, rufen Sie den Fehler aus lastrunstatus
ab, und sehen Sie sich dann die Details in der Datei customization.log an.
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage
Anpassungsprotokoll
Zugreifen auf Liveprotokolle während der Imageerstellung
Um den Fortschritt Ihrer Imageerstellung effektiv zu überwachen, können Sie auf die von Azure Image Builder (AIB) in Azure Container Instances (ACI) generierten Liveprotokolle zugreifen. Diese Protokolle bieten Echtzeit-Erkenntnisse über den Buildprozess, um Probleme zu identifizieren oder zu bestätigen, dass der Build erwartungsgemäß fortgesetzt wird. Führen Sie die folgenden Schritte aus, um diese Liveprotokolle zu suchen und anzuzeigen.
- Starten Sie die Imageerstellung: Initiieren sie den Imageerstellungsprozess.
- Navigieren Sie zu Ressourcengruppen: Wechseln Sie zum Azure-Portal und wählen Sie die „Ressourcengruppen“ aus. Filtern Sie nach dem Abonnement, in dem die Imageerstellung initiiert wurde.
- Wählen Sie die Ressourcengruppe aus: Suchen Sie die Stagingressourcengruppe aus, die der Imageerstellung zugeordnet ist, und wählen Sie sie aus. Dies ist die Ressourcengruppe, die die Buildressourcen des AIB-Dienstes enthält. Weitere Informationen zur Stagingressourcengruppe finden Sie unter Eigenschaften: stagingResourceGroup.
- Suchen Sie den Buildcontainer: Suchen Sie in dieser Ressourcengruppe nach der Ressource mit dem Namen „vmimagebuilder-build-container-**********.“ Falls sie nicht angezeigt wird, warten Sie einige Minuten, und aktualisieren Sie dann die Seite.
- Greifen Sie auf die Containereinstellungen zu: Wählen Sie im linken Bereich unter „Einstellungen“ „Container“ aus.
- Zeigen Sie die Protokolle an: Wechseln Sie zur Registerkarte „Protokolle“, um die Liveprotokolle während des Imageerstellungsprozesses anzuzeigen.
Wenn keine Protokolle angezeigt werden, versuchen Sie, den Container nach ein paar Minuten zu aktualisieren.
Herunterladen des Anpassungs- und/oder Validierungsprotokolls nach der Imageerstellung
Nach Abschluss der Imageerstellung werden die Anpassungs- und Überprüfungsprotokolle in einem Container innerhalb des Speicherkontos in der Stagingressourcengruppe gespeichert, die vom VM Image Builder-Dienst erstellt wurde. Weitere Informationen zur Stagingressourcengruppe finden Sie unter Eigenschaften: stagingResourceGroup.
Hinweis
Beachten Sie beim Zugreifen auf die customization.log
- oder validation.log
-Datei, dass der packerlogs
-Container mehrere Ordner enthalten kann, wenn die Imageerstellung mehrmals ausgeführt wurde. Diese Ordner werden in der Reihenfolge vom ältesten zum neuesten Build sortiert.
Führen Sie die folgenden Schritte aus, um die customization.log
- oder validation.log
Datei zu suchen und herunterzuladen:
- Wählen Sie das Speicherkonto aus: Navigieren Sie im Azure-Portal zum relevanten Speicherkonto, indem Sie innerhalb der Stagingressourcengruppe, die vom VM Image Builder-Dienst erstellt wurde, nach Speicherkonten filtern. Weitere Informationen zur Stagingressourcengruppe finden Sie unter Eigenschaften: stagingResourceGroup.
- Greifen Sie auf den Datenspeicher zu: Wechseln Sie im Speicherkonto zu Datenspeicher.
- Öffnen Sie den Container: Wählen Sie die Option Container und dann den
packerlogs
-Container aus. - Wählen Sie den richtigen Ordner aus: Falls die Imageerstellung mehrmals ausgeführt wurde, werden innerhalb des
packerlogs
-Containers mehrere Ordner angezeigt. Diese Ordner werden in der Reihenfolge vom ältesten zum neuesten Build sortiert. Wählen Sie den Ordner für den Build aus, der Sie interessiert. - Laden Sie die Protokolldatei herunter: Wählen Sie im ausgewählten Ordner die
customization.log
- und/oder dievalidation.log
-Datei aus, und klicken Sie dann auf Herunterladen, um ihre Inhalte herunterzuladen.
Grundlegendes zum Anpassungsprotokoll
Das Protokoll ist sehr ausführlich. Es enthält Informationen zur Imageerstellung sowie alle Probleme bei der Imageverteilung, wie z. B. die Azure Compute Gallery-Replikation. Diese Fehler werden in der Fehlermeldung des Status der Imagevorlage angezeigt.
Die Datei customization.log
umfasst die folgenden Stages:
Bereitstellung der Build-VM und der Abhängigkeiten mithilfe von ARM-Vorlagen in der „IT_“-Stagingressourcengruppe. Diese Stage umfasst mehrere POST-Vorgänge für den VM Image Builder-Ressourcenanbieter:
Azure request method="POST" request="https://management.azure.com/subscriptions/<subID>/resourceGroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-cccc-cccc-ccccccc/providers/Microsoft.Storage/storageAccounts .. PACKER OUT ==> azure-arm: Deploying deployment template ... ..
Status der Bereitstellungen. Diese Stage umfasst den Status der einzelnen Ressourcenbereitstellungen:
PACKER ERR 2020/04/30 23:28:50 packer: 2020/04/30 23:28:50 Azure request method="GET" request="https://management.azure.com/subscriptions/<subID>/resourcegroups/IT_aibImageRG200_window2019VnetTemplate01_dec33089-1cc3-4505-ae28-6661e43fac48/providers/Microsoft.Resources/deployments/pkrdp51lc0339jg/operationStatuses/08586133176207523519?[REDACTED]" body=""
Herstellen der Verbindung mit der Build-VM.
Unter Windows stellt VM Image Builder eine Verbindung über WinRM her:
PACKER ERR 2020/04/30 23:30:50 packer: 2020/04/30 23:30:50 Waiting for WinRM, up to timeout: 10m0s .. PACKER OUT azure-arm: WinRM connected.
Unter Linux stellt VM Image Builder eine Verbindung über SSH her:
PACKER OUT ==> azure-arm: Waiting for SSH to become available... PACKER ERR 2019/12/10 17:20:51 packer: 2020/04/10 17:20:51 [INFO] Waiting for SSH, up to timeout: 20m0s PACKER OUT ==> azure-arm: Connected to SSH!
Ausführen von Anpassungen. Wenn Anpassungen ausgeführt werden, können Sie diese anhand der Datei customization.log identifizieren. Suchen Sie nach (telemetry) .
(telemetry) Starting provisioner windows-update (telemetry) ending windows-update (telemetry) Starting provisioner powershell (telemetry) ending powershell (telemetry) Starting provisioner file (telemetry) ending file (telemetry) Starting provisioner windows-restart (telemetry) ending windows-restart (telemetry) Finalizing. - This means the build hasfinished
Aufheben der Bereitstellung. VM Image Builder fügt eine verborgene Anpassung hinzu. Dieser Schritt zur Aufhebung der Bereitstellung ist für die Vorbereitung der VM auf die Aufhebung der Bereitstellung erforderlich. Unter Windows wird
Sysprep
ausgeführt (mit c:\DeprovisioningScript.ps1). Unter Linux wirdwaagent-deprovision
ausgeführt (mit /tmp/DeprovisioningScript.sh).Beispiel:
PACKER ERR 2020/03/04 23:05:04 [INFO] (telemetry) Starting provisioner powershell PACKER ERR 2020/03/04 23:05:04 packer: 2020/03/04 23:05:04 Found command: if( TEST-PATH c:\DeprovisioningScript.ps1 ){cat c:\DeprovisioningScript.ps1} else {echo "Deprovisioning script [c:\DeprovisioningScript.ps1] could not be found. Image build may fail or the VM created from the Image may not boot. Please make sure the deprovisioning script is not accidentally deleted by a Customizer in the Template."}
Bereinigen. Nachdem die Builderstellung abgeschlossen ist, werden die VM Image Builder-Ressourcen gelöscht.
PACKER ERR ==> azure-arm: Deleting individual resources ... ... PACKER ERR 2020/02/04 02:04:23 packer: 2020/02/04 02:04:23 Azure request method="DELETE" request="https://management.azure.com/subscriptions/<subId>/resourceGroups/IT_aibDevOpsImg_t_vvvvvvv_yyyyyy-de5f-4f7c-92f2-xxxxxxxx/providers/Microsoft.Network/networkInterfaces/pkrnijamvpo08eo?[REDACTED]" body="" ... PACKER ERR ==> azure-arm: The resource group was not created by Packer, not deleting ...
Tipps zur Problembehandlung bei der Skript- oder Inlineanpassung
- Testen Sie den Code, bevor Sie ihn für VM Image Builder bereitstellen.
- Stellen Sie sicher, dass Azure Policy und Firewall die Verbindung mit Remoteressourcen zulassen.
- Geben Sie Kommentare mit
Write-Host
oderecho
an die Konsole aus. Auf diese Weise können Sie die Datei customization.log durchsuchen.
Problembehandlung für häufige Buildfehler
Bei der Vorlagenbereitstellung ist aufgrund einer Richtlinienverletzung ein Fehler aufgetreten.
Fehler
{
"statusCode": "BadRequest",
"serviceRequestId": null,
"statusMessage": "{\"error\":{\"code\":\"InvalidTemplateDeployment\",\"message\":\"The template deployment failed because of policy violation. Please see details for more information.\",\"details\":[{\"code\":\"RequestDisallowedByPolicy\",\"target\":\"<target_name>\",\"message\":\"Resource '<resource_name>' was disallowed by policy. Policy identifiers: '[{\\\"policyAssignment\\\":{\\\"name\\\":\\\"[Initiative] KeyVault (Microsoft.KeyVault)\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policyAssignments/Microsoft.KeyVault\\\"},\\\"policyDefinition\\\":{\\\"name\\\":\\\"Azure Key Vault should disable public network access\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policyDefinitions/KeyVault.disablePublicNetworkAccess_deny_deny\\\"},\\\"policySetDefinition\\\":{\\\"name\\\":\\\"[Initiative] KeyVault (Microsoft.KeyVault)\\\",\\\"id\\\":\\\"/providers/Microsoft.Management/managementGroups/<managementGroup_name>/providers/Microsoft.Authorization/policySetDefinitions/Microsoft.KeyVault\\\"}}]'.\",\"additionalInfo\":[{\"type\":\"PolicyViolation\"}]}]}}",
"eventCategory": "Administrative",
"entity": "/subscriptions/<subscription_ID>/<resourcegroups>/<resourcegroupname>/providers/Microsoft.Resources/deployments/<deployment_name>",
"message": "Microsoft.Resources/deployments/validate/action",
"hierarchy": "<subscription_ID>/<resourcegroupname>/<policy_name>/<managementGroup_name>/<deployment_ID>"
}
Ursache
Der oben gezeigte Richtlinienverstoß ist das Ergebnis der Verwendung einer Azure Key Vault-Instanz mit deaktiviertem öffentlichem Zugriff. Derzeit unterstützt Azure Image Builder diese Konfiguration nicht.
Lösung
Die Azure Key Vault-Instanz muss mit aktiviertem öffentlichen Zugriff erstellt werden.
Fehler beim Packer-Build-Befehl
Fehler
"provisioningState": "Succeeded",
"lastRunStatus": {
"startTime": "2020-04-30T23:24:06.756985789Z",
"endTime": "2020-04-30T23:39:14.268729811Z",
"runState": "Failed",
"message": "Failed while waiting for packerizer: Microservice has failed: Failed while processing request: Error when executing packerizer: Packer build command has failed: exit status 1. During the image build, a failure has occurred, please review the build log to identify which build/customization step failed. For more troubleshooting steps go to https://aka.ms/azvmimagebuilderts. Image Build log location: https://xxxxxxxxxx.blob.core.windows.net/packerlogs/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/customization.log. OperationId: xxxxxx-5a8c-4379-xxxx-8d85493bc791. Use this operationId to search packer logs."
Ursache
Anpassungsfehler.
Lösung
Sehen Sie sich das Protokoll an, um Fehler bei der Anpassung zu ermitteln. Suchen Sie nach (telemetry) .
Beispiel:
(telemetry) Starting provisioner windows-update
(telemetry) ending windows-update
(telemetry) Starting provisioner powershell
(telemetry) ending powershell
(telemetry) Starting provisioner file
(telemetry) ending file
(telemetry) Starting provisioner windows-restart
(telemetry) ending windows-restart
(telemetry) Finalizing. - This means the build has finished
Timeout überschritten
Fehler
Deployment failed. Correlation ID: xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx. Failed in building/customizing image: Failed while waiting for packerizer: Timeout waiting for microservice to complete: 'context deadline exceeded'
Ursache
Der Build hat das Buildtimeout überschritten. Dieser Fehler wird in „lastrunstatus“ angezeigt.
Lösung
Sehen Sie sich die Datei customization.log an. Identifizieren Sie die Anpassung, die zuletzt ausgeführt werden sollte. Suchen Sie, ausgehend vom Ende des Protokolls, nach (telemetry).
Überprüfen Sie die Skriptanpassungen. Die Anpassungen unterdrücken möglicherweise nicht die Benutzerinteraktion für Befehle, wie z. B.
quiet
-Optionen.apt-get install -y
führt beispielsweise dazu, dass die Skriptausführung auf eine Benutzerinteraktion wartet.Wenn Sie die
File
-Anpassung zum Herunterladen von Artefakten mit mehr als 20 MB verwenden, finden Sie weitere Informationen im Abschnitt mit den Problemumgehungen.Sehen Sie sich Fehler und Abhängigkeiten im Skript an, die möglicherweise dazu führen, dass das Skript wartet.
Wenn Sie davon ausgehen, dass die Anpassungen mehr Zeit benötigen, erhöhen Sie den Wert für buildTimeoutInMinutes. Die Standardeinstellung beträgt 4 Stunden.
Wenn Sie ressourcenintensive Aktionen durchführen, wie z. B. das Herunterladen mehrerer Gigabyte (GB) an Dateien, sollten Sie die Größe der zugrunde liegenden Build-VM berücksichtigen. Der Dienst verwendet eine Standard_D1_v2-VM. Die VM verfügt über 1 vCPU und 3,5 GB Arbeitsspeicher. Wenn Sie 50 GB herunterladen, überlasten Sie wahrscheinlich die VM-Ressourcen und verursachen Kommunikationsfehler zwischen VM Image Builder und der Build-VM. Wiederholen Sie den Buildvorgang mit einer VM mit mehr Arbeitsspeicher, indem Sie den Parameter VM_size festlegen.
Lange Downloadzeit für Datei
Fehler
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 826 B / 826000 B 1.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
myBigFile.zip 1652 B / 826000 B 2.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
..
hours later...
..
myBigFile.zip 826000 B / 826000 B 100.00%
[086cf9c4-0457-4e8f-bfd4-908cfe3fe43c] PACKER OUT
Ursache
Die File
-Anpassung lädt eine große Datei herunter.
Lösung
Die File
-Anpassung eignet sich nur zum Herunterladen kleiner Dateien (weniger als 20 MB). Verwenden Sie für größere Dateidownloads ein Skript oder einen Inlinebefehl. Unter Linux können Sie zum Beispiel wget
oder curl
verwenden. Unter Windows können Sie Invoke-WebRequest
verwenden.
Beim Ausführen von Windows-Restart durch den Generator tritt fortlaufend Fehlercode 1190 auf
Fehler
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] (telemetry) Starting provisioner windows-restart
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] starting remote command: shutdown /r /f /t 10
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] command 'shutdown /r /f /t 10' exited with code: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> azure-arm: A system shutdown has already been scheduled.(1190)
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC client: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] RPC client: Communicator ended with: 0
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: Check if machine is rebooting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] starting remote command: shutdown /r /f /t 60 /c "packer restart test"
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] command 'shutdown /r /f /t 60 /c "packer restart test"' exited with code: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-plugin-azure plugin: 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 52 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC client: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 [INFO] RPC endpoint: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 52 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stdout'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: [INFO] RPC client: Communicator ended with: 1190
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:28:58 packer-provisioner-windows-restart plugin: Reboot already in progress, waiting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:08 packer-provisioner-windows-restart plugin: Check if machine is rebooting...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: [INFO] 0 bytes written for 'stderr'
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: Waiting for machine to reboot with timeout: 15m0s
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:29:09 packer-provisioner-windows-restart plugin: Waiting for machine to become available...
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> Some builds didn't complete successfully and had errors:
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:46:26 machine readable: azure-arm,error []string{"Timeout waiting for machine to restart."}
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT --> azure-arm: Timeout waiting for machine to restart.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR ==> Builds finished but no artifacts were created.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER ERR 2023/06/13 08:46:26 [INFO] (telemetry) Finalizing.
[864c0337-b300-48ab-8e8e-7894bc695b7c] PACKER OUT ==> Builds finished but no artifacts were created.
Ursache
Der Windows-Updateschritt wird in Images, die auf Windows Server 2016 basieren, vorzeitig deklariert.
Lösung
Erhöhen Sie restartTimeout
von 15 Minuten auf 30 Minuten.
Fehler beim Warten auf Azure Compute Gallery
Fehler
Deployment failed. Correlation ID: XXXXXX-XXXX-XXXXXX-XXXX-XXXXXX. Failed in distributing 1 images out of total 1: {[Error 0] [Distribute 0] Error publishing MDI to Azure Compute Gallery:/subscriptions/<subId>/resourceGroups/xxxxxx/providers/Microsoft.Compute/galleries/xxxxx/images/xxxxxx, Location:eastus. Error: Error returned from SIG client while publishing MDI to Azure Compute Gallery for dstImageLocation: eastus, dstSubscription: <subId>, dstResourceGroupName: XXXXXX, dstGalleryName: XXXXXX, dstGalleryImageName: XXXXXX. Error: Error waiting on Azure Compute Gallery future for resource group: XXXXXX, gallery name: XXXXXX, gallery image name: XXXXXX.Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded}
Ursache
Es ist ein Timeout aufgetreten, während VM Image Builder darauf gewartet hat, dass das Image hinzugefügt und in der Azure Compute Gallery repliziert wurde. Wenn das Image in die Gallery eingefügt wurde, können Sie davon ausgehen, dass der Imagebuildvorgang erfolgreich war. Der Gesamtprozess war jedoch nicht erfolgreich, da VM Image Builder darauf gewartet hat, dass die Azure Compute Gallery die Replikation abschließt. Obwohl der Build fehlgeschlagen ist, wird die Replikation fortgesetzt. Sie können die Eigenschaften der Imageversion abrufen, indem Sie die Distribution runOutput überprüfen.
$runOutputName=<distributionRunOutput>
az resource show \
--ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName" \
--api-version=2020-02-14
Lösung
Erhöhen Sie den Wert von buildTimeoutInMinutes
.
Zu wenige Informationsereignisse zu Windows-Ressourcen
Fehler
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 1% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 51% cpu; 35% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 21% cpu; 37% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 21% cpu; 36% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for operation to complete (system performance: 90% cpu; 32% memory)...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT azure-arm: Waiting for the Windows Modules Installer to exit...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'PowerShell -ExecutionPolicy Bypass -OutputFormat Text -File C:/Windows/Temp/packer-windows-update-elevated.ps1' exited with code: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Restarting the machine...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: Waiting for machine to become available...
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 1672 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 101
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] starting remote command: shutdown.exe -f -r -t 0 -c "packer restart"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] command 'shutdown.exe -f -r -t 0 -c "packer restart"' exited with code: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer: 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT ==> azure-arm: A system shutdown is in progress.(1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 [INFO] RPC endpoint: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] 0 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:58 packer-provisioner-windows-update: 2020/04/30 23:38:58 [INFO] RPC client: Communicator ended with: 0
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] starting remote command: shutdown.exe -f -r -t 60 -c "packer restart test"
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] command 'shutdown.exe -f -r -t 60 -c "packer restart test"' exited with code: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer: 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 [INFO] RPC endpoint: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 40 bytes written for 'stderr'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] 0 bytes written for 'stdout'
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 [INFO] RPC client: Communicator ended with: 1115
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER ERR 2020/04/30 23:38:59 packer-provisioner-windows-update: 2020/04/30 23:38:59 Retryable error: Machine not yet available (exit status 1115)
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT Build 'azure-arm' errored: unexpected EOF
[45f485cf-5a8c-4379-9937-8d85493bc791] PACKER OUT
Ursache
Ressourcenauslastung. Dieses Problem tritt häufig bei Windows Update auf, wenn es mit der Standardgröße D1_V2 der Build-VM ausgeführt wird.
Lösung
Erhöhen Sie die Build-VM-Größe.
Der Build ist abgeschlossen, aber es wurden keine Artefakte erstellt
Warnung
[<log_id>] PACKER 2023/09/14 19:01:18 ui: Build 'azure-arm' finished after 3 minutes 13 seconds.
[<log_id>] PACKER 2023/09/14 19:01:18 ui:
[<log_id>] PACKER ==> Wait completed after 3 minutes 13 seconds
[<log_id>] PACKER 2023/09/14 19:01:18 ui:
[<log_id>] PACKER ==> Builds finished but no artifacts were created.
[<log_id>] PACKER 2023/09/14 19:01:18 [INFO] (telemetry) Finalizing.
[<log_id>] PACKER 2023/09/14 19:01:19 waiting for all plugin processes to complete...
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer-plugin-azure: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER 2023/09/14 19:01:19 /aib/packerInput/packer: plugin process exited
[<log_id>] PACKER Done exporting Packer logs to Azure Storage.
Lösung
Die Warnung oben kann ignoriert werden.
Überspringen der Imageerstellung
Warnung
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm: -> Snapshot ID : '/subscriptions/<subscription_id>/resourceGroups/<resourcegroup_name>/providers/Microsoft.Compute/snapshots/<snapshot_name>'
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm: Skipping image creation...
[<log_id>] PACKER 2023/09/14 19:00:18 ui: ==> azure-arm:
[<log_id>] PACKER ==> azure-arm: Deleting individual resources ...
[<log_id>] PACKER 2023/09/14 19:00:18 packer-plugin-azure plugin: 202
Lösung
Die Warnung oben kann ignoriert werden.
Ressource nicht gefunden
Fehler
"provisioningState": "Succeeded",
"lastRunStatus": {
"startTime": "2020-05-01T00:13:52.599326198Z",
"endTime": "2020-05-01T00:15:13.62366898Z",
"runState": "Failed",
"message": "network.InterfacesClient#UpdateTags: Failure responding to request: StatusCode=404 -- Original Error: autorest/azure: Service returned an error. Status=404 Code=\"ResourceNotFound\" Message=\"The Resource 'Microsoft.Network/networkInterfaces/aibpls7lz2e.nic.4609d697-be0a-4cb0-86af-49b6fe877fe1' under resource group 'IT_aibImageRG200_window2019VnetTemplate01_9988723b-af56-413a-9006-84130af0e9df' was not found.\""
},
Ursache
Fehlende Berechtigungen.
Lösung
Überprüfen Sie VM Image Builder erneut, um sicherzustellen, dass alle erforderlichen Berechtigungen vorhanden sind.
Weitere Informationen zum Konfigurieren von Berechtigungen finden Sie unter Konfigurieren der VM Image Builder-Berechtigungen mithilfe der Azure CLI oder Konfigurieren der VM Image Builder-Berechtigungen mithilfe von PowerShell.
Sysprep
-Timing
Fehler
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service RdAgent) -and ((Get-Service RdAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running')) { Start-Sleep -s 5 }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Sysprepping VM ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: & $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: while($true) {
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: $imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output $imageState
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Start-Sleep -s 5
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: }
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: Write-Output '>>> Sysprep complete ...'
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (RdAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: >>> Sysprepping VM ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_COMPLETE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: Get-Service : Cannot find any service with service name 'WindowsAzureGuestAgent'.
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: At C:\DeprovisioningScript.ps1:6 char:9
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + while ((Get-Service WindowsAzureGuestAgent) -and ((Get-Service Window ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + CategoryInfo : ObjectNotFound: (WindowsAzureGuestAgent:String) [Get-Service], ServiceCommandException
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: + FullyQualifiedErrorId : NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT azure-arm: IMAGE_STATE_UNDEPLOYABLE
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 Cancelling builder after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT Cancelling build after receiving terminated
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling provisioning due to context cancellation: context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm:
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR 2020/05/05 22:26:17 packer: 2020/05/05 22:26:17 Cancelling hook after context cancellation context canceled
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER OUT ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
[922bdf36-b53c-4e78-9cd8-6b70b9674685] PACKER ERR ==> azure-arm: The resource group was not created by Packer, deleting individual resources ...
Ursache
Aufgrund der VM-Größe D1_V2 kann ein Timingproblem auftreten. Wenn wenige Anpassungen ausgeführt werden müssen und diese in weniger als drei Sekunden abgeschlossen sind, führt VM Image Builder Sysprep
-Befehle aus, um die Bereitstellung aufzuheben. Wenn VM Image Builder die Bereitstellung aufhebt, überprüft der Befehl Sysprep
den WindowsAzureGuestAgent, der möglicherweise nicht vollständig installiert ist und das Timingproblem auslöst.
Lösung
Um das Timingproblem zu vermeiden, können Sie die VM-Größe erhöhen oder eine Anpassung des PowerShell-Energiesparzustands um 60 Sekunden hinzufügen.
Nicht registrierter Anbieter von Azure Container Instances
Fehler
Azure Container Instances provider not registered for your subscription.
Ursache
In Ihrem Vorlagenabonnement ist der Anbieter von Azure Container Instances nicht registriert.
Lösung
Registrieren Sie den Anbieter von Azure Container Instances für Ihr Vorlagenabonnement und fügen Sie die Azure CLI- oder PowerShell-Befehle hinzu:
- Azure-Befehlszeilenschnittstelle:
az provider register -n Microsoft.ContainerInstance
- PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
Azure Container Instances-Kontingent überschritten
Fehler
Azure Container Instances quota exceeded"
Ursache
Das ACI-Kontingent (Azure Container Instances) Ihres Abonnements reicht für die erfolgreiche Imageerstellung durch Azure Image Builder nicht aus.
Lösung
Sie können wie folgt vorgehen, um das ACI-Kontingent für Azure Image Builder verfügbar zu machen:
- Suchen Sie nach anderen Verwendungen von Azure Container Instances in Ihrem Abonnement, und entfernen Sie alle nicht benötigten Instanzen, um das Kontingent für Azure Image Builder verfügbar zu machen.
- Azure Image Builder stellt ACI nur vorübergehend während eines Buildvorgangs bereit. Diese Instanzen werden nach Abschluss des Buildvorgangs gelöscht. Wenn in Ihrem Abonnement zu viele gleichzeitige Imagebuildvorgänge stattfinden, können Sie ggf. einige der Imagebuildvorgänge verzögern. Dadurch wird die gleichzeitige Nutzung von ACI in Ihrem Abonnement reduziert. Wenn Ihre Imagevorlagen für automatische Imagebuildvorgänge unter Verwendung von Triggern eingerichtet sind, werden solche fehlerhaften Buildvorgänge automatisch von Azure Image Builder wiederholt.
- Sollten die aktuellen ACI-Grenzwerte für Ihr Abonnement zu niedrig sein, um Ihre Imageerstellungsszenarien zu unterstützen, können Sie eine Erhöhung Ihres ACI-Kontingents anfordern.
Hinweis
ACI-Ressourcen sind für isolierte Imagebuilds erforderlich.
Zu viele bereitgestellte ACI-Instanzen innerhalb eines bestimmten Zeitraums
Fehler
„Zu viele bereitgestellte ACI-Instanzen innerhalb eines bestimmten Zeitraums“
Ursache
Das ACI-Kontingent (Azure Container Instances) Ihres Abonnements reicht für die erfolgreiche gleichzeitige Imageerstellung durch Azure Image Builder nicht aus.
Lösung
Sie können folgendermaßen vorgehen:
- Wiederholen Sie die nicht erfolgreichen Buildvorgänge mit weniger Parallelität.
- Sollten die aktuellen ACI-Grenzwerte für Ihr Abonnement zu niedrig sein, um Ihre Imageerstellungsszenarien zu unterstützen, können Sie eine Erhöhung Ihres ACI-Kontingents anfordern.
Fehler für isolierten Imagebuild
Fehler
Azure Image Builder-Buildvorgänge sind aufgrund eines isolierten Imagebuilds nicht erfolgreich.
Ursache
Buildvorgänge von Azure Image Builder sind möglicherweise aus Gründen, die an anderer Stelle in diesem Dokument aufgeführt sind, nicht erfolgreich. In seltenen Fällen tritt jedoch aufgrund von isolierten Imagebuilds ein Fehler für einen Build auf (abhängig von Ihrem Szenario, von Abonnementkontingenten oder von einem unvorhergesehenen Dienstfehler). Weitere Informationen zu isolierten Imagebuilds finden Sie hier.
Lösung
Wenn Sie feststellen, dass für einen Build ein Fehler aufgrund von isolierten Imagebuilds auftritt, haben Sie folgende Möglichkeiten:
- Vergewissern Sie sich, dass keine Richtlinie von Azure Policy die Bereitstellung von Ressourcen blockiert, die im Abschnitt Voraussetzungen angegeben sind, insbesondere Azure Container Instances.
- Stellen Sie sicher, dass Ihr Abonnement über ein ausreichendes Kontingent an Azure-Containerinstanzen verfügt, um alle Ihre gleichzeitigen Imagebuildvorgänge zu unterstützen. Weitere Informationen finden Sie unter Azure Container Instances-Kontingent überschritten.
Azure Image Builder ist gerade dabei, isolierte Imagebuilds bereitzustellen. Spezifische Imagevorlagen sind nicht an isolierte Imagebuilds gebunden, und die gleiche Imagevorlage kann während verschiedener Buildvorgänge isolierte Imagebuilds verwenden (oder auch nicht). Sie können die folgenden Schritte ausführen, um Ihren Build vorübergehend ohne isolierte Imagebuilds auszuführen.
- Wiederholen Sie Ihren Buildvorgang. Da Imagevorlagen nicht an das Feature für isolierte Imagebuilds gebunden sind, ist es sehr wahrscheinlich, dass die Wiederholung eines Buildvorgangs ohne isolierte Imagebuilds ausgeführt wird.
Sollte keine dieser Lösungen das Problem mit nicht erfolgreichen Imagebuildvorgängen lösen, können Sie sich an den Azure-Support wenden, um isolierte Imagebuilds vorübergehend für Ihr Abonnement zu deaktivieren. Weitere Informationen finden Sie unter Erstellen einer Azure-Supportanfrage.
Hinweis
Isolierte Imagebuilds werden letztendlich in allen Regionen und Vorlagen aktiviert. Daher sollten die oben genannten Entschärfungen als temporär betrachtet werden, und die zugrunde liegende Ursache von Buildfehlern muss behoben werden.
Der Build wird abgebrochen, nachdem der Kontextabbruchkontext abgebrochen wurde
Fehler
PACKER ERR 2020/03/26 22:11:23 Cancelling builder after context cancellation context canceled
PACKER OUT Cancelling build after receiving terminated
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling hook after context cancellation context canceled
..
PACKER ERR 2020/03/26 22:11:23 packer-builder-azure-arm plugin: Cancelling provisioning due to context cancellation: context canceled
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [ERROR] Remote command exited without exit status or exit signal.
PACKER ERR 2020/03/26 22:11:25 packer-builder-azure-arm plugin: [INFO] RPC endpoint: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] 148974 bytes written for 'stdout'
PACKER ERR 2020/03/26 22:11:25 [INFO] 0 bytes written for 'stderr'
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC client: Communicator ended with: 2300218
PACKER ERR 2020/03/26 22:11:25 [INFO] RPC endpoint: Communicator ended with: 2300218
Ursache
VM Image Builder verwendet Port 22 (Linux) oder 5986 (Windows), um eine Verbindung mit der Build-VM herzustellen. Dieser Fehler kann auftreten, wenn während der Erstellung eines Imagebuilds die Verbindung zwischen Dienst und Build-VM getrennt wird. Die Gründe für die Trennung können variieren, aber das Aktivieren oder Konfigurieren einer Firewall im Skript kann die zuvor erwähnten Ports blockieren.
Lösung
Überprüfen Sie Ihre Skripts auf Firewalländerungen/-aktivierung oder Änderungen an SSH oder WinRM, und stellen Sie sicher, dass alle Änderungen eine konstante Konnektivität zwischen dem Dienst und der Build-VM an den oben genannten Ports zulassen. Weitere Informationen finden Sie unter Netzwerkoptionen für VM Image Builder.
JWT-Fehler im Protokoll früh im Build
Fehler
Früh im Buildprozess tritt ein Fehler auf, und das Protokoll weist auf einen JWT-Fehler (JSON Web Token) hin:
PACKER OUT Error: Failed to prepare build: "azure-arm"
PACKER ERR
PACKER OUT
PACKER ERR * client_jwt will expire within 5 minutes, please use a JWT that is valid for at least 5 minutes
PACKER OUT 1 error(s) occurred:
Ursache
Der buildTimeoutInMinutes
-Wert in der Vorlage ist auf 1 bis 5 Minuten festgelegt.
Lösung
Wie unter Erstellen einer VM Image Builder-Vorlage beschrieben, muss das Timeout auf 0 festgelegt werden, um den Standardwert zu verwenden, oder auf mehr als 5 Minuten, um den Standardwert zu überschreiben. Ändern Sie das Timeout in Ihrer Vorlage auf 0, um den Standardwert zu verwenden, oder mindestens auf 6 Minuten.
Fehler beim Löschen von Ressourcen
Fehler
Zwischenressourcen werden gegen Ende des Buildvorgangs bereinigt, und im Anpassungsprotokoll können mehrere Fehler beim Löschen von Ressourcen angezeigt werden:
PACKER OUT ==> azure-arm: Error deleting resource. Will retry.
...
PACKER OUT ==> azure-arm: Error: network.PublicIPAddressesClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="PublicIPAddressCannotBeDeleted" Message=...
...
PACKER ERR 2022/03/07 18:43:06 packer-plugin-azure plugin: 2022/03/07 18:43:06 Retryable error: network.SecurityGroupsClient#Delete: Failure sending request: StatusCode=0 -- Original Error: Code="InUseNetworkSecurityGroupCannotBeDeleted"...
Ursache
Diese Fehlerprotokollmeldungen sind größtenteils unbedenklich, da das Löschen von Ressourcen mehrmals versucht wird und in der Regel schlussendlich auch gelingt. Sie können dies überprüfen, indem Sie die Löschprotokolle durchsehen, bis Sie eine Erfolgsmeldung finden. Alternativ dazu können Sie die Ressourcengruppe für den Stagingprozess untersuchen, um zu überprüfen, ob die Ressource gelöscht wurde.
Diese Beobachtungen sind besonders wichtig bei nicht erfolgreichen Buildausführungen, da solche Fehlermeldungen Sie zu der Annahme verleiten könnten, dass sie der Grund für die nicht erfolgreiche Ausführung sind, auch wenn die Fehler eigentlich woanders liegen.
Fehler
Wenn Images bei der Löschung von Vorlagen hängen bleiben, enthält das Anpassungsprotokoll möglicherweise den folgenden Fehler:
error deleting resource id /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<networkInterfacName>: resources.Client#DeleteByID: Failure sending request: StatusCode=400 --
Original Error: Code="NicInUseWithPrivateEndpoint"
Message="Network interface /subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/networkInterfaces/<networkInterfacName> cannot be deleted because it is currently in use with an private endpoint (/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Network/privateEndpoints/<pIname>)." Details=[]
Ursache
Der Fehler tritt auf, weil die Netzwerkschnittstelle derzeit mit einem privaten Endpunkt verwendet wird.
Lösung
Um das Problem zu beheben, löschen Sie die folgenden Ressourcen einzeln in der bestimmten Reihenfolge:
- Verbindung mit privatem Endpunkt. Sie können dies in der Private Link-Dienstressource finden, indem Sie auf der Ressourcenseite des Private Link-Diensts zur Registerkarte „Verbindungen mit privaten Endpunkten“ wechseln.
- Private Link-Dienst.
- Netzwerkschnittstelle und Lastenausgleich.
- Ressourcengruppe.
- Imagevorlage.
Wenn Sie weitere Unterstützung benötigen, können Sie sich an den Azure-Support wenden, um den Fehler beim Löschvorgang zu beheben.
Verteilungsziel in Updateanforderung nicht gefunden
Fehler
Validation failed: Distribute target with Runoutput name <runoutputname> not found in the update request. Deleting a distribution target is not allowed.
Ursache
Dieser Fehler tritt auf, wenn ein vorhandenes Verteilungsziel nicht im Anforderungstext für den Patch gefunden wird.
Lösung
Das Verteilungsarray sollte alle Verteilungsziele enthalten, d. h. neue Ziele (falls vorhanden), vorhandene Ziele ohne Änderung und aktualisierte Ziele. Wenn Sie ein vorhandenes Verteilungsziel entfernen möchten, wird die Imagevorlage gelöscht und neu erstellt, da das Löschen eines Verteilungsziels über die Patch-API derzeit nicht unterstützt wird.
Fehlende Pflichtfelder
Fehler
Validation failed: 'ImageTemplate.properties.distribute[<index>]': Missing field <fieldname>. Please review http://aka.ms/azvmimagebuildertmplref for details on fields required in the Image Builder Template.
Ursache
Dieser Fehler tritt auf, wenn ein Pflichtfeld in einem Verteilungsziel fehlt.
Lösung
Wenn Sie eine Anforderung erstellen, müssen Sie jedes erforderliche Feld in einem Verteilungsziel angeben, auch wenn keine Änderung vorhanden ist.
DevOps-Aufgaben
Problembehandlung für den Task
Der Task wird nur dann nicht erfolgreich ausgeführt, wenn während der Anpassung ein Fehler auftritt. In diesem Fall meldet der Task den Fehler und behält die Stagingressourcengruppe mit den Protokollen bei, damit Sie das Problem identifizieren können.
Um das Protokoll zu finden, müssen Sie den Vorlagennamen kennen. Wechseln Sie zu Pipeline>fehlerhafter Build, und führen Sie einen Drilldown zum DevOps-Task von VM Image Builder aus.
Hier sehen Sie das Protokoll und einen Vorlagennamen:
start reading task parameters...
found build at: /home/vsts/work/r1/a/_ImageBuilding/webapp
end reading parameters
getting storage account details for aibstordot1556933914
created archive /home/vsts/work/_temp/temp_web_package_21475337782320203.zip
Source for image: { type: 'SharedImageVersion',
imageVersionId: '/subscriptions/<subscriptionID>/resourceGroups/<rgName>/providers/Microsoft.Compute/galleries/<galleryName>/images/<imageDefName>/versions/<imgVersionNumber>' }
template name: t_1556938436xxx
- Wechseln Sie zum Azure-Portal, suchen Sie in der Ressourcengruppe nach dem Vorlagennamen, und suchen Sie dann nach der Ressourcengruppe, indem Sie „IT_*“ eingeben.
- Wählen Sie den Speicherkontonamen und dann >Blobs>Container>Protokolle aus.
Problembehandlung bei erfolgreichen Builds
Möglicherweise müssen Sie gelegentlich erfolgreiche Builds untersuchen und ihre Protokolle überprüfen. Wie bereits erwähnt, wird die Stagingressourcengruppe, die die Protokolle enthält, bei der Bereinigung gelöscht, wenn der Imagebuild erfolgreich ausgeführt wurde. Um eine automatische Bereinigung zu verhindern, können Sie jedoch nach dem Inlinebefehl einen sleep
-Wert angeben und dann die Protokolle anzeigen, während der Build angehalten wird. Führen Sie hierzu folgende Schritte aus:
- Aktualisieren Sie den Inlinebefehl, indem Sie Write-Host / Echo “Sleep” hinzufügen. Damit erhalten Sie genügend Zeit, um im Protokoll zu suchen.
- Fügen Sie mit einem Start-Sleep-Cmdlet oder einem
Sleep
-Linux-Befehl einensleep
-Wert von mindestens 10 Minuten hinzu. - Verwenden Sie diese Methode, um den Protokollspeicherort zu ermitteln, und fahren Sie dann mit dem Herunterladen oder Überprüfen des Protokolls fort, bis
sleep
erreicht wird.
Der Vorgang wurde abgebrochen.
Fehler
2020-05-05T18:28:24.9280196Z ##[section]Starting: Azure VM Image Builder Task
2020-05-05T18:28:24.9609966Z ==============================================================================
2020-05-05T18:28:24.9610739Z Task : Azure VM Image Builder Test
2020-05-05T18:28:24.9611277Z Description : Build images using Azure Image Builder resource provider.
2020-05-05T18:28:24.9611608Z Version : 1.0.18
2020-05-05T18:28:24.9612003Z Author : Microsoft Corporation
2020-05-05T18:28:24.9612718Z Help : For documentation, and end to end example, please visit: http://aka.ms/azvmimagebuilderdevops
2020-05-05T18:28:24.9613390Z ==============================================================================
2020-05-05T18:28:26.0651512Z start reading task parameters...
2020-05-05T18:28:26.0673377Z found build at: d:\a\r1\a\_AppsAndImageBuilder\webApp
2020-05-05T18:28:26.0708785Z end reading parameters
2020-05-05T18:28:26.0745447Z getting storage account details for aibstagstor1565047758
2020-05-05T18:28:29.8812270Z created archive d:\a\_temp\temp_web_package_09737279437949953.zip
2020-05-05T18:28:33.1568013Z Source for image: { type: 'PlatformImage',
2020-05-05T18:28:33.1584131Z publisher: 'MicrosoftWindowsServer',
2020-05-05T18:28:33.1585965Z offer: 'WindowsServer',
2020-05-05T18:28:33.1592768Z sku: '2016-Datacenter',
2020-05-05T18:28:33.1594191Z version: '14393.3630.2004101604' }
2020-05-05T18:28:33.1595387Z template name: t_1588703313152
2020-05-05T18:28:33.1597453Z starting put template...
2020-05-05T18:28:52.9278603Z put template: Succeeded
2020-05-05T18:28:52.9281282Z starting run template...
2020-05-05T19:33:14.3923479Z ##[error]The operation was canceled.
2020-05-05T19:33:14.3939721Z ##[section]Finishing: Azure VM Image Builder Task
Ursache
Wenn der Build nicht von einem Benutzer abgebrochen wurde, wurde er vom Azure DevOps-Benutzer-Agent abgebrochen. Am wahrscheinlichsten ist aufgrund von Azure DevOps-Funktionen nach einer Stunde ein Timeout aufgetreten. Wenn Sie ein privates Projekt und einen Agent verwenden, erhalten Sie eine Buildzeit von 60 Minuten. Wenn der Buildvorgang diesen Timeoutwert überschreitet, bricht DevOps den laufenden Task ab.
Weitere Informationen zu Azure DevOps-Funktionen und -Einschränkungen finden Sie im Abschnitt zu von Microsoft gehosteten Agents.
Lösung
Sie können eigene DevOps-Agents hosten oder versuchen, die Buildzeit zu verkürzen. Bei einer Verteilung an Azure Compute Gallery können Sie die Agents beispielsweise in einer Region oder asynchron replizieren.
Langsame Windows-Anmeldung
Fehler
Dieser Fehler kann auftreten, wenn Sie mithilfe von VM Image Builder ein Windows 10 Image erstellen, aus diesem Image eine VM erstellen und dann das Remotedesktopprotokoll (RDP) verwenden. Sie warten mehrere Minuten auf dem ersten Anmeldebildschirm, und dann wird auf einem Bluescreen die folgende Meldung angezeigt:
Please wait for the Windows Modules Installer
Lösung
Überprüfen Sie Folgendes im Imagebuild:
- Es gibt keine ausstehenden Neustarts, die aufgrund der Hinzufügung einer Windows-Neustartanpassung bei der letzten Anpassung erforderlich sind.
- Die Installation sämtlicher Softwareprogramme ist abgeschlossen.
Fügen Sie die Option /mode:vm zum
Sysprep
-Standardbefehl hinzu, der von VM Image Builder verwendet wird. Weitere Informationen finden Sie unter „Aus VM Image Builder-Images erstellte VMs werden nicht erfolgreich erstellt“ im Abschnitt Überschreiben der Befehle.
Aus VM Image Builder-Images erstellte VMs werden nicht erfolgreich erstellt
VM Image Builder führt nach jeder Imageanpassungsphase standardmäßig Code zum Aufheben der Bereitstellung aus, um das Image zu generalisieren. Generalisieren eines Image bedeutet, es so einzurichten, dass damit mehrere VMs erstellt werden können. Im Rahmen des Prozesses können Sie VM-Einstellungen wie Hostname, Benutzername usw. übergeben. VM Image Builder führt unter Windows Sysprep
und unter Linux waagent -deprovision
aus.
Unter Windows verwendet VM Image Builder einen generischen Sysprep
-Befehl. Dieser Befehl ist jedoch möglicherweise nicht für jede erfolgreiche Windows-Generalisierung geeignet. Mit VM Image Builder können Sie den Sysprep
-Befehl anpassen. Beachten Sie, dass VM Image Builder ein Imageautomatisierungstool ist, das für die erfolgreiche Ausführung des Befehls Sysprep
zuständig ist. Sie benötigen jedoch möglicherweise verschiedene Sysprep
-Befehle, damit Ihr Image wiederverwendbar wird. Unter Linux verwendet VM Image Builder einen generischen waagent -deprovision+user
-Befehl. Weitere Informationen finden Sie in der Microsoft Azure-Dokumentation zu Linux-Agents.
Wenn Sie eine vorhandene Anpassung migrieren und verschiedene Sysprep
- oder waagent
-Befehle verwenden, können Sie die generischen Befehle von VM Image Builder ausprobieren. Wenn die VM-Erstellung nicht erfolgreich ist, verwenden Sie Ihre vorherigen Sysprep
- oder waagent
-Befehle.
Angenommen, Sie haben VM Image Builder erfolgreich zum Erstellen eines benutzerdefinierten Windows-Images verwendet, aber Sie konnten aus dem Image keine VM erstellen. Die VM-Erstellung kann z. B. nicht abgeschlossen werden, oder es tritt ein Timeout auf. Führen Sie in diesem Fall eine der folgenden Aktionen aus:
- Sehen Sie sich die Sysprep-Dokumentation für Windows Server an.
- Reichen Sie beim für Windows Server-Sysprep zuständigen Kundendienstteam eine Supportanfrage ein. Dieses Team kann Ihnen bei der Problembehandlung helfen und Ihnen den richtigen
Sysprep
-Befehl nennen.
Befehlsspeicherorte und Dateinamen
Windows:
c:\DeprovisioningScript.ps1
Linux:
/tmp/DeprovisioningScript.sh
Der Sysprep
-Befehl: Windows
Write-Output '>>> Waiting for GA Service (RdAgent) to start ...'
while ((Get-Service RdAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureTelemetryService) to start ...'
while ((Get-Service WindowsAzureTelemetryService) -and ((Get-Service WindowsAzureTelemetryService).Status -ne 'Running')) { Start-Sleep -s 5 }
Write-Output '>>> Waiting for GA Service (WindowsAzureGuestAgent) to start ...'
while ((Get-Service WindowsAzureGuestAgent).Status -ne 'Running') { Start-Sleep -s 5 }
Write-Output '>>> Sysprepping VM ...'
if( Test-Path $Env:SystemRoot\system32\Sysprep\unattend.xml ) {
Remove-Item $Env:SystemRoot\system32\Sysprep\unattend.xml -Force
}
& $Env:SystemRoot\System32\Sysprep\Sysprep.exe /oobe /generalize /quiet /quit
while($true) {
$imageState = (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State).ImageState
Write-Output $imageState
if ($imageState -eq 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { break }
Start-Sleep -s 5
}
Write-Output '>>> Sysprep complete ...'
Der -deprovision
-Befehl: Linux
sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync
Überschreiben der Befehle
Verwenden Sie zum Überschreiben der Befehle die PowerShell- oder Shell-Skriptbereitstellungen, um die Befehlsdateien mit dem korrekten Dateinamen zu erstellen und sie in die zuvor aufgeführten Verzeichnisse einzufügen. VM Image Builder liest diese Befehle und schreibt die Ausgabe in die Datei customization.log.
Support
Wenn Sie den Leitfaden gelesen haben und weiterhin vor Problemen stehen, können Sie einen Supportfall eröffnen. Wählen Sie das richtige Produkt und Supportthema aus. Dadurch wird sichergestellt, dass Sie mit dem Supportteam für Azure VM Image Builder in Verbindung gesetzt werden.
Auswahl des Produkts für die Anfrage:
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder
Nächste Schritte
Weitere Informationen finden Sie unter Übersicht über VM Image Builder.