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.
Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen
Verwenden Sie diesen Artikel, um häufige Probleme zu beheben, die bei der Verwendung des Azure VM Image Builders auftreten können.
Fehler bei VM Image Builder können in zwei Bereichen auftreten:
- Während der Übermittlung von Imagevorlagen
- Während der Imageerstellung
Voraussetzungen
Diese Voraussetzungen gelten für das Erstellen eines Builds:
Der VM Image Builder-Dienst kommuniziert mit dem Build virtual machine (VM) mithilfe von Windows Remote Management (WinRM) oder Secure Shell (SSH). Deaktivieren Sie diese Einstellungen nicht als Teil des Builds.
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 von der Bildvorlage angegeben wird. Vergewissern Sie sich, dass Azure Policy nicht verhindert, dass VM Image Builder erforderliche Ressourcen erstellt oder verwendet.
- Erstellen Sie eine
IT_Ressourcengruppe. - 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.
- Erstellen Sie eine
Stellen Sie sicher, dass die Azure-Richtlinie nicht unbeabsichtigte Features auf der Build-VM oder anderen Stagingressourcen installiert, z. B. Azure-Erweiterungen oder Tagänderungen.
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 überprüft haben, ob sie ohne Fehler ausgeführt werden (Exit-Code
0) oder 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 für Azure-Containerinstanzen verfügt.
Jeder Imagebuild kann bis zu einer temporären Azure Container Instances-Ressource (mit vier Standardkernen) in der Stagingressourcengruppe bereitstellen. Diese Ressourcen sind für isolierte Image-Builds erforderlich.
Hinweis
Von CIS gehärtete Images (Linux oder Windows) auf Azure Marketplace, die vom Center for Internet Security (CIS) verwaltet werden, können aufgrund ihrer Konfigurationen zu Buildfehlern beim VM Image Builder-Dienst führen. Beispiel:
- Gehärtete CIS-Images für Windows stören möglicherweise die WinRM-Konnektivität, eine Voraussetzung für VM Image Builder-Builds.
- Gehärtete CIS-Images für Linux können aufgrund von
chmod +x-Berechtigungsproblemen fehlschlagen.
Fehlerbehebung bei der Übermittlung von Bildvorlagen
Fehler bei der Übermittlung von Imagevorlagen werden nur bei der Übermittlung zurückgegeben. Für Fehler bei der Übermittlung von Bildvorlagen ist kein Fehlerprotokoll vorhanden. Wenn während der Übermittlung ein Fehler auftritt, können Sie den Fehler zurückgeben, indem Sie den Status der Vorlage überprüfen. Überprüfen Sie insbesondere ProvisioningState und ProvisioningErrorMessage/provisioningError.
Hier sehen Sie den Befehl für die Azure CLI:
az image builder show --name $imageTemplateName --resource-group $imageResourceGroup
Hier sehen Sie den Befehl für Azure PowerShell. Um Azure PowerShell zu verwenden, müssen Sie die PowerShell-Module des VM-Image-Generators installieren.
Get-AzImageBuilderTemplate -ImageTemplateName <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage
Dies ist die 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."
}
Dies ist die 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."
}
}
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.
Wir empfehlen, nach dem Wechsel zur neuesten API-Version, dass Sie nicht zu einer früheren Version zurückkehren. Wenn Sie zurückkehren, müssen Sie Ihre Automatisierung erneut ändern, um das frühere Fehlerschema zu erzeugen. Wir erwarten nicht, dass das Fehlerschema in zukünftigen Versionen erneut geändert wird.
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.
Verwaltete zugewiesene Identität in einer Bildvorlage kann nicht verwendet werden
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
Es gibt Fälle, in denen eine erstellte verwaltete Identität , die der Bildvorlage zugewiesen ist, nicht verwendet werden kann.
Eine mögliche Ursache ist, dass die Vm Image Builder-Vorlage eine vom Kunden bereitgestellte Stagingressourcengruppe verwendet und die verwaltete Identität gelöscht wird, bevor die Imagevorlage gelöscht wird. (Dies ist ein Szenario für eine Stagingressourcengruppe.)
Lösung
Verwenden Sie die Azure CLI, um die verwaltete Identität in der Bildvorlage zurückzusetzen. Achten Sie darauf, Azure CLI auf die Version 2.45.0 oder höher zu aktualisieren .
Bestätigen Sie die verwaltete Identität aus der VM Image Builder-Zielvorlage:
az image builder identity show -g <template resource group> -n <template name>
Entfernen Sie die verwaltete Identität aus der Ziel-VM Image Builder-Vorlage:
az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>
Weisen Sie der Ziel-VM Image Builder-Vorlage eine neue Identität zu:
az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>
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.
Zugewiesene verwaltete Identität ist nicht für den Zugriff auf eine Ressource autorisiert.
Fehler
Not authorized to access the resource: <resource-not-able-to-access>. Please check the user assigned identity has the correct permissions. For more details, go to https://aka.ms/azvmimagebuilderts.
Ursache
Die erstellte verwaltete Identität, die der Bildvorlage zugewiesen ist, verfügt nicht über alle Berechtigungen, um auf die Ressource zuzugreifen, die in der Fehlermeldung erwähnt wird.
Lösung
Bestätigen Sie die verwaltete Identität aus der VM Image Builder-Zielvorlage:
az image builder identity show -g <template resource group> -n <template name>
Prüfen Sie die Rollenzuweisungen für die Identität:
az role assignment list --assignee <identity_client_id_or_principal_id>
Weisen Sie die erforderliche Rolle zu. Erstellen Sie bei Bedarf Ihre Rolle mit den erforderlichen Berechtigungen.
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.
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. Ein Konflikt mit der Stagingressourcengruppe kann auch diesen Fehler verursachen.
Lösung
Je nach Szenario benötigt VM Image Builder möglicherweise Berechtigungen für Folgendes:
- Das Quellimage oder die Ressourcengruppe der Azure Compute Gallery (die früher als Shared Image Gallery bezeichnet wurde)
- 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
Berechtigungen fehlen.
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.
Fehler beim 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.
Bestimmte Dateirepositorys verwenden möglicherweise nicht unterstützte Verschlüsselungssammlungen und verursachen Downloadfehler mit VM Image Builder. Speichern Sie Dateien und Skripts in einem Azure-Speicherkonto, um sichere Chiffresammlungen und die Zugänglichkeit durch den VM Image Builder sicherzustellen. Weitere Informationen zum Speichern Ihrer Dateien in Azure-Speicherkonten finden Sie unter Übersicht über das Speicherkonto.
Autorisierungsfehler beim Erstellen eines Datenträgers
Der Build des VM Image Builder schlägt mit einem Autorisierungsfehler fehl, der wie im folgenden Beispiel 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 tritt auf, wenn Sie versuchen, eine bereits vorhandene Ressourcengruppe und ein virtuelles Netzwerk für den VM Image Builder-Dienst mit einem Windows-Quellimage anzugeben.
Lösung
Sie müssen der Ressourcengruppe die Rolle „Mitwirkender” für den Dienstprinzipal zuweisen, der der Erstanbieter-App des VM Image Builder entspricht. Verwenden Sie die folgenden Azure CLI-Befehle oder Azure-Portalanweisungen.
Überprüfen Sie zunächst, ob der Dienstprinzipal der First-Party-App des VM Image Builder zugeordnet ist, indem Sie den folgenden Azure CLI-Befehl verwenden:
az ad sp show --id {servicePrincipalName, or objectId}
Verwenden Sie dann den folgenden Befehl, um diese Lösung mithilfe der Azure CLI zu implementieren:
az role assignment create -g {ResourceGroupName} --assignee {AibrpSpOid} --role Contributor
Um diese Lösung im Portal zu implementieren, befolgen Sie die Anweisungen unter Zuweisen von Azure-Rollen mithilfe des Azure-Portals:
Für Schritt 1: Identifizieren Sie den erforderlichen Bereich, der erforderliche Bereich ist Ihre Ressourcengruppe.
Für Schritt 3: Wählen Sie die entsprechende Rolle aus, die Rolle ist Mitwirkender.
Für Schritt 4: Wählen Sie aus, wer Zugriff benötigt, wählen Sie das Image Builder-Mitglied von Azure Virtual Machine aus.
In Schritt 7: Rolle zuweisen, weisen Sie die Rolle zu.
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 des Imagebuilds
Um den Fortschritt Ihres Imagebuilds effektiv zu überwachen, können Sie auf die Liveprotokolle zugreifen, die der VM Image Builder in Azure-Containerinstanzen generiert. Diese Protokolle bieten Einblicke in Echtzeit in den Buildprozess. Sie helfen Ihnen, Probleme zu erkennen oder zu bestätigen, dass der Build erwartungsgemäß fortgesetzt wird.
So suchen und anzeigen Sie die Liveprotokolle:
Beginnen Sie den Image-Build-Prozess.
Wechseln Sie zum Azure-Portal, und wählen Sie "Ressourcengruppen" aus. Filtern Sie nach dem Abonnement, in dem Sie den Imagebuild initiiert haben.
Suchen und wählen Sie die Stagingressourcengruppe aus, die dem Imagebuild zugeordnet ist. Diese Ressourcengruppe enthält die Buildressourcen für den VM Image Builder-Dienst. Weitere Informationen zur Stagingressourcengruppe finden Sie unter Eigenschaften: stagingResourceGroup.
Suchen Sie in dieser Ressourcengruppe nach der Ressource mit dem Namen
vmimagebuilder-build-container-**********. Wenn sie nicht sichtbar ist, warten Sie einige Minuten, und aktualisieren Sie die Seite.Wählen Sie im linken Bereich unter "Einstellungen" "Container" aus.
Wechseln Sie zur Registerkarte "Protokolle ", um die Liveprotokolle während des Imagebuildprozesses anzuzeigen.
Wenn keine Protokolle angezeigt werden, versuchen Sie, den Container nach ein paar Minuten zu aktualisieren.
Herunterladen des Anpassungs- und/oder Validierungsprotokolls nach dem Imagebuild
Nach Abschluss des Imagebuilds werden die Anpassungs- und Überprüfungsprotokolle in einem Container innerhalb des Speicherkontos in der Stagingressourcengruppe gespeichert, die der VM Image Builder-Dienst erstellt hat. Weitere Informationen zur Stagingressourcengruppe finden Sie unter Eigenschaften: stagingResourceGroup.
Um die customization.log- oder validation.log-Datei zu suchen und herunterzuladen:
Navigieren Sie im Azure-Portal zum relevanten Speicherkonto, indem Sie innerhalb der Stagingressourcengruppe, die vom VM Image Builder-Dienst erstellt wurde, nach Speicherkonten filtern.
Wechseln Sie unter dem Speicherkonto zu "Datenspeicher".
Wählen Sie die Option "Container " und dann den
packerlogsContainer aus.Innerhalb des
packerlogsContainers werden mehrere Ordner angezeigt, wenn der Imagebuild mehrmals ausgeführt wurde. Diese Ordner werden in der Reihenfolge vom ältesten zum neuesten Build sortiert. Wählen Sie den Ordner aus, der dem Build entspricht, an dem Sie interessiert sind.Wählen Sie im ausgewählten Ordner die
customization.logund/odervalidation.logDatei aus, und wählen Sie dann Herunterladen aus, um den Inhalt herunterzuladen.
Phasen des Anpassungsprotokolls
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 Probleme werden in der Fehlermeldung des Bildvorlagenstatus angezeigt.
Die Datei customization.log umfasst die folgenden Stages:
Bereitstellung der Build-VM und der Abhängigkeiten mithilfe von Azure Resource Manager-Vorlagen in der
IT_-Stagingressourcengruppe. Diese Phase umfasst mehrerePOST-Anfragen an 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 ... ..Rufen Sie den Status der Bereitstellungen ab. 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=""Stellen Sie eine Verbindung mit der Build-VM her.
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!Führen Sie Anpassungen aus. Wenn Anpassungen ausgeführt werden, können Sie sie identifizieren, indem Sie die
customization.logDatei überprüfen. Suchen 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 has finishedAufheben der Bereitstellung. VM Image Builder fügt eine verborgene Anpassung hinzu. Dieser Schritt ist für die Vorbereitung der virtuellen Maschine zur Deprovisionierung verantwortlich. In Windows wird
Sysprepausgeführt (mithilfe vonc:\DeprovisioningScript.ps1). In Linux wirdwaagent-deprovisionausgeführt (mithilfe von/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."}Bereinigung. Nach Abschluss des Builds 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 ...
Fehlerbehebung bei Skript- oder Inline-Anpassungen
Die folgenden Tipps können Ihnen bei der Problembehandlung von Skript- oder Inlineanpassungen helfen:
- Testen Sie den Code, bevor Sie ihn für VM Image Builder bereitstellen.
- Stellen Sie sicher, dass Azure-Richtlinie und Azure-Firewall die Konnektivität mit Remoteressourcen zulassen.
- Senden von Ausgabekommentaren an die Konsole mithilfe von
Write-Hostoderecho. Auf diese Weise können Sie diecustomization.logDatei durchsuchen.
Problembehandlung für häufige Buildfehler
Fehler bei der Vorlagenbereitstellung aufgrund einer Richtlinienverletzung
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 fehler bei der vorherigen Richtlinienverletzung ist das Ergebnis der Verwendung eines Azure Key Vault mit deaktiviertem öffentlichen Zugriff. Derzeit unterstützt der VM-Image-Generator diese Konfiguration nicht.
Lösung
Um den Schlüsseltresor mit öffentlichem Zugriff zu erstellen, müssen Sie diesen aktivieren.
Der Packer-Buildbefehl schlägt fehl
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
Der Fehler eines Packerbuildbefehls ist ein 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
Fehler bei der Bereitstellung aufgrund eines Timeouts
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 Timeout überschritten. Dieser Fehler tritt in lastRunStatus auf.
Lösung
Überprüfen Sie die Datei
customization.log. Identifizieren Sie die Anpassung, die zuletzt ausgeführt werden sollte. Suchen Sie nach(telemetry), beginnend am Ende des Protokolls.Ü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 -yfü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.Überprüfen Sie Fehler und Abhängigkeiten im Skript, die dazu führen können, dass das Skript wartet.
Wenn Sie erwarten, dass die Anpassungen mehr Zeit benötigen, erhöhen Sie den Wert von
buildTimeoutInMinutes. Die Standardeinstellung beträgt 4 Stunden.Wenn Sie ressourcenintensive Aktionen haben, z. B. das Herunterladen von Gigabyte an Dateien, sollten Sie die Größe der zugrunde liegenden Build-VM berücksichtigen.
Der Dienst verwendet eine Standard_D1_v2-VM. Der virtuelle Computer verfügt über eine 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 Build mit einer VM mit größerem Arbeitsspeicher, indem Sie die Einstellung festlegen
VM_size.
Die Dateidownloadzeit ist lang.
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
Der File Customizer lädt eine große Datei herunter.
Lösung
Der File Customizer eignet sich nur für kleine (weniger als 20 MB) Dateidownloads. Verwenden Sie für größere Dateidownloads ein Skript oder einen Inlinebefehl. In Linux können Sie z. B. verwenden wget oder curl. Unter Windows können Sie Invoke-WebRequest verwenden.
Der Windows-Neustart schlägt kontinuierlich mit Fehlercode 1190 fehl.
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 Update-Schritt wird vorzeitig in Images basierend auf Windows Server 2016 deklariert.
Lösung
Erhöhen Sie restartTimeout von 15 Minuten auf 30 Minuten.
Fehler tritt auf, wenn auf die Azure Compute Gallery gewartet wird.
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 Bildversion abrufen, indem Sie die Verteilung 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.
Informationsereignisse zeigen niedrige Windows-Ressourcen an
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
Die Ursache ist die Ressourcenausschöpfung. Dieses Problem tritt häufig auf, wenn Windows Update mit der standardmäßigen Build-VM-Größe D1_V2 ausgeführt wird.
Lösung
Erhöhen Sie die Build-VM-Größe.
Der Build wurde 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
Sie können die vorherige Warnung sicher ignorieren.
Bilderstellung wurde übersprungen
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
Sie können die vorherige Warnung sicher ignorieren.
Ressource wurde 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
Berechtigungen fehlen.
Lösung
Überprüfen Sie erneut, ob der VM-Image-Generator über alle erforderlichen Berechtigungen verfügt.
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.
Es gibt ein Sysprep-Timing-Problem.
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
Die Größe der D1_V2 VM kann der Grund für das Timing-Problem sein. Wenn Anpassungen begrenzt sind und in weniger als drei Sekunden ausgeführt werden, führt der VM Image Builder Sysprep Befehle aus, um das System zu deprovisionieren. 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 Timing-Problem zu vermeiden, können Sie die VM-Größe erhöhen oder eine 60-sekündige PowerShell sleep-Anpassung hinzufügen.
Azure Container Instances-Anbieter ist nicht registriert
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 Azure Container Instances-Anbieter für Ihr Vorlagenabonnement, und fügen Sie einen der folgenden Befehle hinzu:
- Azure CLI:
az provider register -n Microsoft.ContainerInstance - Azure PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
Das Abonnement hat das Azure Container Instances-Kontingent überschritten.
Fehler
Azure Container Instances quota exceeded
Ursache
Ihr Abonnement verfügt nicht über genügend Azure Container Instances-Kontingent für VM Image Builder, um ein Image erfolgreich zu erstellen.
Lösung
Sie können die folgenden Aktionen ausführen, um das Azure-Containerinstanzkontingent für den VM Image Builder verfügbar zu machen:
Suchen Sie nach einer anderen Verwendung von Azure-Containerinstanzen in Ihrem Abonnement. Entfernen Sie alle nicht benötigten Instanzen, um das Kontingent für vm Image Builder verfügbar zu machen.
VM Image Builder stellt Azure-Containerinstanzen nur vorübergehend während eines Builds bereit. Diese Instanzen werden nach Abschluss des Builds gelöscht.
Wenn zu viele gleichzeitige Imagebuilds in Ihrem Abonnement ausgeführt werden, können Sie erwägen, einige der Imagebuilds zu verzögern. Durch diese Verzögerung wird die gleichzeitige Nutzung von Azure-Containerinstanzen in Ihrem Abonnement reduziert.
Wenn Ihre Imagevorlagen für automatische Imagebuilds über Trigger eingerichtet sind, versucht VM Image Builder automatisch, solche fehlgeschlagenen Builds erneut auszuführen.
Wenn die aktuellen Grenzwerte für Azure-Containerinstanzen für Ihr Abonnement zu niedrig sind, um Ihre Imageerstellungsszenarien zu unterstützen, können Sie eine Erhöhung Ihres Azure Container Instances-Kontingents anfordern.
Hinweis
Azure Container Instances-Ressourcen sind für isolierte Image-Builds erforderlich.
Zu viele Azure Container Instances-Ressourcen werden innerhalb eines bestimmten Zeitraums bereitgestellt.
Fehler
"Zu viele Azure-Containerinstanzen, die innerhalb eines bestimmten Zeitraums bereitgestellt werden."
Ursache
Ihr Abonnement verfügt nicht über genügend Azure Container Instances-Kontingent für VM Image Builder, um Images gleichzeitig zu erstellen.
Lösung
Sie können diese Lösungen ausprobieren:
- Wiederholen Sie die nicht erfolgreichen Buildvorgänge mit weniger Parallelität.
- Wenn die aktuellen Grenzwerte für Azure-Containerinstanzen für Ihr Abonnement zu niedrig sind, um Ihre Imageerstellungsszenarien zu unterstützen, können Sie eine Erhöhung Ihres Azure Container Instances-Kontingents anfordern.
Funktion „Isolierte Imagebuilds” verursacht einen Fehler
Fehler
VM Image Builder-Buildvorgänge sind aufgrund eines isolierten Imagebuilds nicht erfolgreich.
Ursache
VM Image Builder-Builds können aus Gründen fehlschlagen, die an anderer Stelle in diesem Artikel aufgeführt sind. 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, stellen Sie Folgendes sicher:
- Keine Azure-Richtlinie blockiert die Bereitstellung von Ressourcen, die im Abschnitt "Voraussetzungen " dieses Artikels erwähnt werden (insbesondere Azure-Containerinstanzen).
- Ihr Abonnement verfügt über ein ausreichendes Kontingent für Azure-Containerinstanzen, um alle gleichzeitigen Imagebuilds zu unterstützen. Weitere Informationen finden Sie im Abschnitt "Abonnement hat das Azure Container Instances-Kontingent überschritten" dieses Artikels.
VM 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).
Wenn Sie Ihren Build vorübergehend ohne isolierte Image-Builds ausführen möchten, versuchen Sie den Build erneut. 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.
Wenn keine dieser Lösungen fehlerhafte Imagebuilds entschärft, können Sie sich an den Azure-Support wenden, um Ihr Abonnement vorübergehend für isolierte Imagebuilds zu deaktivieren. Weitere Informationen finden Sie unter Erstellen einer Azure-Supportanfrage.
Hinweis
Wenn das Feature „Isolierte Imagebuilds” in allen Regionen und Vorlagen schließlich aktiviert ist, sind die vorherigen Entschärfungen nur temporär. Es ist am besten, die zugrunde liegende Ursache von Buildfehlern zu beheben.
Build wird nach dem Abbruch des Kontexts abgebrochen
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. Dieses Problem tritt auf, wenn der Dienst während eines Imagebuilds von der 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 Änderungen oder Aktivierungen der Firewall sowie auf Änderungen an SSH oder WinRM. Stellen Sie sicher, dass alle Änderungen eine konstante Verbindung zwischen dem Dienst und der Build-VM für die zuvor erwähnten Ports ermöglichen. Weitere Informationen finden Sie unter Netzwerkoptionen für VM Image Builder.
JWT-Fehler treten frühzeitig im Build-Protokoll auf.
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 in der Vorlage "Erstellen einer VM Image Builder" beschrieben, muss das Timeout auf 0 Minuten festgelegt werden, um die Standardeinstellung zu verwenden oder auf mehr als 5 Minuten festzulegen, um die Standardeinstellung außer Kraft zu setzen. Ändern Sie das Timeout in Ihrer Vorlage in 0 Minuten, um die Standardeinstellung zu verwenden, oder ändern Sie es in mindestens 6 Minuten.
Fehler beim Löschen von Ressourcen werden angezeigt
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 Fehlermeldungen sind meist harmlos, da Ressourcenlöschungen mehrmals wiederholt werden. Normalerweise sind sie schließlich erfolgreich. Sie können dieses Verhalten überprüfen, indem Sie weiterhin den Löschprotokollen folgen, bis Sie eine Erfolgsmeldung beobachten. Alternativ dazu können Sie die Ressourcengruppe für den Stagingprozess untersuchen, um zu überprüfen, ob die Ressource gelöscht wurde.
Das ist bei Buildfehlern besonders wichtig. Diese Fehlermeldungen können zu dem Schluss führen, dass sie der Grund für die Fehler sind, auch wenn die tatsächlichen Fehler möglicherweise an anderer Stelle vorliegen.
Fehler
Wenn Bilder beim Löschen von Vorlagen hängen bleiben, zeigt das Anpassungsprotokoll möglicherweise den folgenden Fehler an:
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 nacheinander in dieser bestimmten Reihenfolge:
- Verbindung mit privatem Endpunkt. Sie finden diese Verbindung in der Azure Private Link-Dienstressource, indem Sie auf der Seite für die Ressource "Privater Link-Dienst" zur Registerkarte "Private Endpunktverbindungen " wechseln.
- Private Link-Dienst.
- Netzwerkschnittstelle und Lastenausgleich.
- Ressourcengruppe.
- Imagevorlage.
Um weitere Hilfe zu erhalten, können Sie sich an den Azure-Support wenden , um den hängen gebliebenen Löschfehler zu beheben.
Das Verteilungsziel wurde in der 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 Patchanforderungstext gefunden wird.
Lösung
Das Verteilungsarray sollte alle Verteilungsziele enthalten: neue Ziele (falls vorhanden), vorhandene Ziele ohne Änderung und aktualisierte Ziele. Wenn Sie ein vorhandenes Verteilungsziel entfernen möchten, löschen Sie die Bildvorlage, und erstellen Sie sie erneut. Das Löschen eines Verteilungsziels wird derzeit nicht über die Patch-API unterstützt.
Erforderliche Felder fehlen
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 erforderliches Feld in einem Verteilungsziel fehlt.
Lösung
Achten Sie beim Erstellen einer Anforderung darauf, jedes erforderliche Feld in einem Verteilungsziel bereitzustellen, auch wenn keine Änderung vorhanden ist.
Problembehandlung bei Azure DevOps
Eine Azure DevOps-Aufgabe schlägt nur fehl, wenn während der Anpassung ein Fehler auftritt. Wenn dieser Fehler auftritt, meldet der Vorgang den Fehler und verlässt die Stagingressourcengruppe mit den Protokollen, damit Sie das Problem identifizieren können.
So suchen Sie das Protokoll:
Suchen Sie den Namen der Vorlage. Wechseln Sie zu Pipeline>fehlgeschlagener Build, und analysieren Sie die Azure DevOps-Aufgabe im VM Image Builder detailliert. Notieren Sie sich den
template nameWert.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_1556938436xxxWechseln 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 Namen des Speicherkontos und anschließend Blobs>Container>Protokolle aus.
Möglicherweise müssen Sie gelegentlich erfolgreiche Builds untersuchen und ihre Protokolle überprüfen. Wenn der Imagebuild erfolgreich ist, wird die Stagingressourcengruppe, die die Protokolle enthält, wie bereits erwähnt, als Teil der Bereinigung gelöscht. Um eine automatische Bereinigung zu verhindern, können Sie sleep nach dem Inlinebefehl einführen und dann die Protokolle anzeigen, indem Sie den Build anhalten:
- Aktualisieren Sie den Inlinebefehl, indem Sie
Write-Host / Echo "Sleep"einfügen. Diese Ergänzung gibt Ihnen Zeit, um im Protokoll zu suchen. - Fügen Sie einen
sleepWert von mindestens 10 Minuten mit einemStart-SleepOderSleepLinux-Befehl hinzu. - Verwenden Sie diese Methode, um den Protokollspeicherort zu ermitteln, und fahren Sie dann mit dem Herunterladen oder Überprüfen des Protokolls fort, bis
sleeperreicht 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 ein Benutzer den Build nicht abgebrochen hat, hat der Azure DevOps-Benutzer-Agent ihn abgebrochen. Höchstwahrscheinlich ist das einstündige Timeout aufgrund von Azure DevOps-Funktionen aufgetreten. Wenn Sie ein privates Projekt und einen Agent verwenden, erhalten Sie eine Buildzeit von 60 Minuten. Wenn der Build das Timeout überschreitet, bricht Azure DevOps die ausgeführte Aufgabe ab.
Weitere Informationen zu Azure DevOps-Funktionen und -Einschränkungen finden Sie im Abschnitt zu von Microsoft gehosteten Agents.
Lösung
Sie können Ihre eigenen Azure DevOps-Agents hosten oder versuchen, die Zeit Ihres Builds zu reduzieren. Wenn Sie beispielsweise an die Azure Compute Gallery verteilen, können Sie diese in nur einer Region replizieren oder sie asynchron replizieren lassen.
Windows-Anmeldung ist langsam
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
Stellen Sie im Imagebuild folgendes sicher:
- Es sind keine ausstehenden Neustarts erforderlich, indem Sie einen Windows-Neustartanpasser als letzte Anpassung hinzufügen.
- Die Installation sämtlicher Softwareprogramme ist abgeschlossen.
Fügen Sie die
/mode:vmOption zum StandardbefehlSysprephinzu, den vm Image Builder verwendet. Weitere Informationen finden Sie unter Überschreiben der Befehle weiter unten in diesem Artikel.
Problembehandlung für VMs, die nicht erfolgreich vom VM Image Builder erstellt wurden
Der VM Image Builder führt standardmäßig deprovisionierenden Code am Ende jeder Imageanpassungsphase aus, um das Image zu generalisieren . Beim Generalisieren eines Bilds wird es für die Wiederverwendung beim Erstellen mehrerer VMs eingerichtet. Im Rahmen des Prozesses können Sie VM-Einstellungen übergeben, z. B. Hostname und Benutzername.
In Windows führt vm Image Builder einen generischen Sysprep Befehl aus. 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. VM Image Builder ist ein Imageautomatisierungstool, das für die erfolgreiche Ausführung von Sysprep Befehlen verantwortlich ist. Sie benötigen jedoch möglicherweise verschiedene Sysprep-Befehle, damit Ihr Image wiederverwendbar wird.
In Linux führt vm Image Builder einen generischen waagent -deprovision+user Befehl aus. Weitere Informationen finden Sie in der Dokumentation zum Microsoft Azure Linux-Agent.
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 einen virtuellen Computer nicht erfolgreich aus dem Image erstellen. Beispielsweise kann die VM-Erstellung beendet werden, oder es ist ein Zeitüberschreitung aufgetreten. In diesem Fall können Sie eine der folgenden Aufgaben ausführen:
- Lesen Sie die Windows Server-Dokumentation
Sysprep. - Stellen Sie eine Supportanfrage beim Windows Server-Kundensupportteam
Sysprep. Dieses Team kann Ihnen bei der Problembehandlung helfen und Sie beim richtigenSysprepBefehl beraten.
Befehlsspeicherorte und Dateinamen
In Windows:
c:\DeprovisioningScript.ps1
Linux:
/tmp/DeprovisioningScript.sh
Sysprep-Befehl für 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 ...'
Deprovisionierungsbefehl für Linux
sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync
Überschreiben der Befehle
Um die Befehle zu überschreiben, verwenden Sie PowerShell- oder Shellskripts, um die Befehlsdateien mit dem genauen Dateinamen zu erstellen. Fügen Sie sie in die zuvor aufgeführten Verzeichnisse ein. Der VM Image Builder liest diese Befehle und schreibt die Ausgabe in die customization.log Datei.
Unterstützung erhalten
Wenn Sie die Richtlinien in diesem Artikel verwendet haben und weiterhin Probleme haben, können Sie eine Supportanfrage öffnen.
Verwenden Sie den folgenden Code, um das richtige Produkt- und Supportthema auszuwählen. Dadurch wird sichergestellt, dass Sie mit dem Supportteam des Azure VM Image Builder verbunden sind.
Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder