Résoudre les problèmes liés à Azure VM Image Builder

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Utilisez cet article pour résoudre les problèmes courants que vous pouvez rencontrer quand vous utilisez Azure VM Image Builder.

Prérequis

Quand vous créez une build, procédez comme suit :

  • Le service VM Image Builder communique avec la machine virtuelle de build en utilisant WinRM ou Secure Shell (SSH). Ne désactivez pas ces paramètres dans le cadre de la build.
  • VM Image Builder crée des ressources dans le groupe de ressources de mise en lots dans le cadre des builds. Veillez à vérifier qu’Azure Policy n’empêche pas VM Image Builder de créer ou d’utiliser les ressources nécessaires.
  • Vérifiez qu’Azure Policy n’installe pas de fonctionnalités inattendues sur la machine virtuelle de build, comme des extensions Azure.
  • Assurez-vous que VM Image Builder dispose des autorisations appropriées pour lire/écrire des images et se connecter au compte de stockage. Pour plus d’informations, consultez la documentation sur les autorisations pour Azure CLI ou Azure PowerShell.
  • VM Image Builder rate la build si les scripts ou les commandes incluses échouent avec des erreurs (codes de sortie non nuls). Vérifiez que vous avez testé les scripts personnalisés et vérifié qu’ils s’exécutent sans erreur (code de sortie 0) ou nécessitent une entrée utilisateur. Pour plus d’informations, consultez Créer une image Azure Virtual Desktop en utilisant VM Image Builder et PowerShell.
  • Vérifiez que votre abonnement dispose d’un quota suffisant d’Azure Container Instances.
    • Chaque build d’image peut déployer jusqu’à une ressource temporaire Azure Container Instance (de quatre cœurs standard) dans le groupe de ressources de mise en lots. Ces ressources sont requises pour les builds d’imagesisolées.

Les échecs de VM Image Builder peuvent se produire dans deux domaines :

  • Lors de l’envoi d’un modèle d’image
  • Pendant la génération d’images

Remarque

Les images CIS renforcées (Linux ou Windows) sur la Place de marché Azure, gérées par CIS, peuvent entraîner des défaillances de build avec le service Azure Image Builder en raison de leurs configurations. Exemple :

  • Les images CIS renforcées Windows peuvent perturber la connectivité WinRM, un prérequis pour la build AIB.
  • Les images CIS LINUX peuvent échouer en raison de problèmes d’autorisation chmod +x.

Résoudre les erreurs d’envoi du modèle d’image

Les erreurs d’envoi du modèle d’image sont renvoyées uniquement au moment de l’envoi. Il n’existe pas de journal des erreurs pour ce type d’erreur. En cas d’erreur lors de l’envoi, vous pouvez retourner l’erreur en vérifiant l’état du modèle, en particulier en examinant ProvisioningState et ProvisioningErrorMessage/provisioningError.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object ProvisioningState, ProvisioningErrorMessage

Notes

Pour PowerShell, vous devez installer les modules PowerShell VM Image Builder.

Important

L’API version 2021-10-01 introduit un changement du schéma d’erreur qui fera partie de chaque version future de l’API. Si vous disposez d’automatisations Azure VM Image Builder, ayez à l’esprit la nouvelle sortie d’erreur quand vous passez à l’API version 2021-10-01 ou ultérieure. Nous vous recommandons, après être passé à la dernière version de l’API, de ne pas revenir à une version antérieure, car vous devriez rechanger votre automatisation pour produire le schéma d’erreur antérieur. Nous ne prévoyons pas de rechanger le schéma d’erreur dans les futures versions.

Sortie d’erreur pour les versions 2020-02-14 et antérieures

{
  "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."
}

Sortie d’erreur pour les versions 2021-10-01 et ultérieures

{
  "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."
  }
}

Les sections suivantes présentent des conseils de résolution des problèmes pour les erreurs courantes d’envoi du modèle d’image.

La mise à jour ou la mise à niveau des modèles d’image n’est pas prise en charge

Error

'Conflict'. Details: Update/Upgrade of image templates is currently not supported

Cause

Le modèle existe déjà.

Solution

Si vous soumettez un modèle de configuration d’image et que l’envoi échoue, il existe toujours un artefact de l’échec du modèle. Supprimez le modèle qui a échoué.

Réaffectation de MSI sur des modèles d’image

Error

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.

Cause

Il existe des cas où les identités de service managées (MSI) attribuées au modèle d’image ne peuvent pas être utilisées :

Solution

Utilisez Azure CLI pour réinitialiser l’identité sur le modèle d’image. Veillez à mettre à jour Azure CLI vers la version 2.45.0 ou ultérieure.

Supprimer l’identité managée du modèle Image Builder cible

az image builder identity remove -g <template resource group> -n <template name> --user-assigned <identity resource id>

Réattribuer l’identité au modèle Image Builder cible

az image builder identity assign -g <template rg> -n <template name> --user-assigned <identity resource id>

L’opération de ressource s’est terminée avec l’état de provisionnement du terminal « Échec »

Error

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."

Cause

Dans la plupart des cas, l’échec du déploiement de la ressource est due à des autorisations manquantes. Cette erreur peut également être due à un conflit avec le groupe de ressources intermédiaire.

Solution

Selon votre scénario, VM Image Builder peut avoir besoin d’autorisations pour :

  • L’image source ou le groupe de ressources Azure Compute Gallery (anciennement Shared Image Gallery).
  • L’image de distribution ou ressource Azure Compute Gallery.
  • Le compte de stockage, conteneur ou blob auquel le personnalisateur File accède.

Vérifiez également que le nom du groupe de ressources intermédiaire est spécifié de manière unique pour chaque modèle d’image.

Pour plus d’informations sur la configuration des autorisations, consultez Configurer les autorisations de VM Image Builder en utilisant Azure CLI ou Configurer les autorisations de VM Image Builder en utilisant PowerShell.

Erreur lors de l’obtention d’une image managée

Error

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

Cause

Autorisations manquantes.

Solution

Selon votre scénario, VM Image Builder peut avoir besoin d’autorisations pour :

  • L’image source ou le groupe de ressources Azure Compute Gallery.
  • L’image de distribution ou ressource Azure Compute Gallery.
  • Le compte de stockage, conteneur ou blob auquel le personnalisateur File accède.

Pour plus d’informations sur la configuration des autorisations, consultez Configurer les autorisations de VM Image Builder en utilisant Azure CLI ou Configurer les autorisations de VM Image Builder en utilisant PowerShell.

Échec de l’étape de génération pour la version de l’image

Error

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."

Cause

VM Image Builder ne peut pas localiser l’image source.

Solution

Assurez-vous que l’image source est correcte et qu’elle existe à l’emplacement de VM Image Builder.

Téléchargement d’un fichier externe vers un fichier local

Error

Downloading external file (<myFile>) to local file (xxxxx.0.customizer.fp) [attempt 1 of 10] failed: Error downloading '<myFile>' to 'xxxxx.0.customizer.fp'..

Cause

Le nom ou l’emplacement du fichier est incorrect, ou l’emplacement n’est pas accessible.

Solution

Assurez-vous que le fichier est accessible. Vérifiez que le nom et l’emplacement sont corrects.

Erreur d’autorisation lors de la création d’un disque

La build Azure Image Builder échoue avec une erreur d’autorisation qui ressemble à ce qui suit :

Error

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.'

Cause

Cette erreur se produit lors de la tentative de spécification d’un groupe de ressources et d’un réseau virtuel pré-existant au service Azure Image Builder avec une image source Windows.

Solution

Vous devez affecter le rôle de contributeur au groupe de ressources pour le principal de service correspondant à l’application tierce d’Azure Image Builder à l’aide de la commande CLI ou des instructions du portail ci-dessous.

Tout d’abord, vérifiez que le principal de service est associé à l’application tierce d’Azure Image Builder à l’aide de la commande CLI suivante :

az ad sp show --id {servicePrincipalName, or objectId}

Ensuite, pour implémenter cette solution à l’aide de l’interface CLI, utilisez la commande suivante :

az role assignment create -g {ResourceGroupName} --assignee {AibrpSpOid} --role Contributor

Pour implémenter cette solution dans le portail, suivez les instructions de cette documentation : Attribuer des rôles Azure à l’aide du portail Azure - RBAC Azure.

À l’étape 1 : Identifiez l’étendue nécessaire : l’étendue nécessaire est votre groupe de ressources.

À l’étape 3 : Sélectionnez le rôle approprié : le rôle est Contributeur.

À l’étape 4 : Sélectionnez qui a accès : sélectionnez le membre « Générateur d’images de machine virtuelle Azure »

Ensuite, passez à l’étape 6 : Attribuez un rôle pour attribuer le rôle.

Résoudre les échecs de build

Pour les échecs de génération d’images, obtenez l’erreur à partir du lastrunstatus, puis passez en revue les détails dans le fichier customization.log.

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup
Get-AzImageBuilderTemplate -ImageTemplateName  <imageTemplateName> -ResourceGroupName <imageTemplateResourceGroup> | Select-Object LastRunStatus, LastRunStatusMessage

Journal de personnalisation

Lorsque la build de l’image est en cours d’exécution, des journaux sont créés et stockés dans un compte de stockage. VM Image Builder crée le compte de stockage dans le groupe de ressources temporaire quand vous créez un artefact de modèle d’image.

Le nom du compte de stockage utilise le modèle IT_<nom du groupe de ressources d’image><nom du modèle><GUID> (par exemple, IT_aibmdi_helloImageTemplateLinux01).

Pour afficher le fichier customization.log dans le groupe de ressources, sélectionnez Compte de stockage>Objets blob>packerlogs, sélectionnez répertoire, puis sélectionnez le fichier customization.log.

Comprendre le journal de personnalisation

Le journal est détaillé. Il couvre la build d’image, notamment les problèmes liés à la distribution d’image tels que la réplication d’Azure Compute Gallery. Ces erreurs sont signalées dans le message d’erreur relatif à l’état du modèle d’image.

Le fichier customization.log comprend les étapes suivantes :

  1. Étape Déploiement de la machine virtuelle de build et des dépendances en utilisant des modèles Resource Manager dans le groupe de ressources de préproduction IT_. Cette étape comprend plusieurs revendications POST adressées au fournisseur de ressources VM Image Builder :

    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 ...
    ..
    
  2. Étape État des déploiements. Cette étape comprend l’état de chaque déploiement de ressource :

    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=""
    
  3. Étape Connexion à la machine virtuelle de build.

    Dans Windows, VM Image Builder se connecte avec WinRM :

    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.
    

    Dans Linux, VM Image Builder se connecte avec SSH :

    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!
    
  4. Étape Exécution des personnalisations. Quand les personnalisations s’exécutent, vous pouvez les identifier en consultant le fichier customization.log. Recherchez (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
    
  5. Étape Déprovisionnement. VM Image Builder ajoute un personnalisateur masqué. Cette étape de déprovisionnement prépare la machine virtuelle pour le déprovisionnement. Dans Windows, elle exécute Sysprep (en utilisant c:\DeprovisioningScript.ps1). Dans Linux, elle exécute waagent-deprovision (en utilisant /tmp/DeprovisioningScript.sh).

    Par exemple :

    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."}
    
  6. Étape nettoyage. Une fois la build terminée, les ressources de VM Image Builder sont supprimées.

    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 ...
    

Conseils pour la résolution des problèmes de script ou de personnalisation inline

  • Testez le code avant de le fournir à VM Image Builder.
  • Assurez-vous qu’Azure Policy et Pare-feu Azure autorisent la connectivité aux ressources distantes.
  • Affichez les commentaires dans la console en utilisant Write-Host ou echo. Cela vous permet d’effectuer des recherches dans le fichier customization.log.

Résolution des erreurs de build courantes

Le déploiement du modèle a échoué à cause du non-respect d’une stratégie

Error

{
  "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>"
}

Cause

L’erreur de violation de stratégie ci-dessus est due à l’utilisation d’une instance Key Vault Azure avec l’accès public désactivé. À ce stade, Azure Image Builder ne prend pas en charge cette configuration.

Solution

L’instance Key Vault Azure doit être créée avec l’accès public activé.

Échec de la commande de build Packer

Error

  "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."

Cause

Échec de la personnalisation.

Solution

Consultez le journal pour localiser les échecs du personnalisateur. Recherchez (telemetry) .

Par exemple :

(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

Délai d’attente dépassé

Error

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'

Cause

Le délai d’attente de la build a expiré. Cette erreur s’affiche dans « lastrunstatus ».

Solution

  1. Passez en revue le fichier customization.log. Identifiez le dernier personnalisateur à s’exécuter. Recherchez (telemetry) en partant du bas du journal.

  2. Vérifiez les personnalisations du script. Les personnalisations ne doivent pas supprimer l’interaction de l’utilisateur avec les commandes, telles que les options quiet. Par exemple, apt-get install -y entraîne l’exécution du script en attente de l’intervention de l’utilisateur.

  3. Si vous utilisez le personnalisateur File pour télécharger des artefacts supérieurs à 20 Mo, consultez la section relative aux solutions de contournement.

  4. Examinez les erreurs et les dépendances dans le script qui peuvent entraîner l’attente du script.

  5. Si vous vous attendez à ce que les personnalisations nécessitent davantage de temps, augmentez la valeur du paramètre buildTimeoutInMinutes. La valeur par défaut est 4 heures.

  6. Si vous avez des actions gourmandes en ressources, telles que le téléchargement de gigaoctets (Go) de fichiers, tenez compte de la taille de machine virtuelle de build sous-jacente. Le service utilise une machine virtuelle Standard_D1_v2. La machine virtuelle possède 1 processeur virtuel et 3,5 Go de mémoire. Si vous téléchargez 50 Go, cela épuisera probablement les ressources de machine virtuelle et provoquera des échecs de communication entre VM Image Builder et la machine virtuelle de build. Réessayez la build avec une machine virtuelle dont la mémoire est plus grande en définissant VM_size.

Longue durée de téléchargement des fichiers

Error

[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

Cause

Le personnalisateur File télécharge un fichier volumineux.

Solution

Le personnalisateur File convient uniquement aux téléchargements de petits fichiers (inférieurs à 20 Mo). Pour les téléchargements de fichiers plus volumineux, utilisez un script ou une commande inlined. Par exemple, vous pouvez utiliser wget ou curl dans Linux. Dans Windows, vous pouvez utiliser Invoke-WebRequest.

Le générateur échoue en permanence à exécuter Windows-Restart avec le code d’erreur 1190

Error

[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.

Cause

L’étape de Windows update déclare prématurément dans les images en fonction de Windows Server 2016.

Solution

Faites passer restartTimeout de 15 minutes à 30 minutes.

Error

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}

Cause

VM Image Builder a expiré lors de l’ajout et de la réplication de l’image à Azure Compute Gallery. Si l’image est injectée dans la galerie, vous pouvez supposer que la génération de l’image a réussi. Toutefois, le processus global a échoué, car VM Image Builder attendait Azure Compute Gallery pour terminer la réplication. Même si la génération a échoué, la réplication se poursuit. Vous pouvez récupérer les propriétés de la version de l’image en vérifiant la distribution runOutput.

$runOutputName=<distributionRunOutput>
az resource show \
    --ids "/subscriptions/$subscriptionID/resourcegroups/$imageResourceGroup/providers/Microsoft.VirtualMachineImages/imageTemplates/$imageTemplateName/runOutputs/$runOutputName"  \
    --api-version=2020-02-14

Solution

Augmentez la valeur de buildTimeoutInMinutes.

Événements d’informations de ressources Windows faibles

Error

[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

Cause

Épuisement des ressources. Ce problème est communément constaté avec Windows Update fonctionnant avec la taille de machine virtuelle de build par défaut D1_V2.

Solution

Augmentez la taille de machine virtuelle de la build.

La build est terminée, mais aucun artefact n’a été créé

Avertissement

[<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.

Solution

Vous pouvez ignorer l’avertissement suivant sans problème.

Ignorer la création d’images

Avertissement

[<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

Solution

Vous pouvez ignorer l’avertissement suivant sans problème.

Ressource introuvable

Error

  "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.\""
  },

Cause

Autorisations manquantes.

Solution

Revérifiez que VM Image Builder dispose de toutes les autorisations requises.

Pour plus d’informations sur la configuration des autorisations, consultez Configurer les autorisations de VM Image Builder en utilisant Azure CLI ou Configurer les autorisations de VM Image Builder en utilisant PowerShell.

Minutage Sysprep

Error

[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 ...

Cause

La cause peut être un problème de minutage en raison de la taille de la machine virtuelle D1_V2. Si les personnalisations sont limitées et sont exécutées en moins de trois secondes, les commandes Sysprep sont exécutées par VM Image Builder pour déprovisionner. Quand VM Image Builder est déprovisionné, la commande Sysprepvérifie si WindowsAzureGuestAgent n’est pas entièrement installé, ce qui peut entraîner un problème de synchronisation.

Solution

Pour éviter le problème de minutage, vous pouvez augmenter la taille de la machine virtuelle ou ajouter une personnalisation de veille PowerShell de 60 secondes.

Fournisseur Azure Container Instances non inscrit

Error

Azure Container Instances provider not registered for your subscription.

Cause

L’abonnement de votre modèle n’a pas le fournisseur Azure Container Instances inscrit.

Solution

Inscrivez le fournisseur Azure Container Instances pour l’abonnement de votre modèle et ajoutez les commandes Azure CLI ou PowerShell :

  • Azure CLI : az provider register -n Microsoft.ContainerInstance
  • PowerShell : Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

Quota Azure Container Instances dépassé

Error

Azure Container Instances quota exceeded"

Cause

Votre abonnement n’a pas suffisamment de quota Azure Container Instances (ACI) pour Azure Image Builder pour générer une image.

Solution

Vous pouvez effectuer les opérations suivantes pour rendre le quota ACI disponible pour Azure Image Builder :

  • Vérifiez l’utilisation des Azure Container Instances dans votre abonnement et supprimez les instances inutiles afin de libérer du quota pour Azure Image Builder.
  • Azure Image Builder ne déploie ACI que temporairement pendant qu’une construction est en cours. Ces instances sont supprimées une fois la construction terminée. Si un trop grand nombre de constructions d’images simultanées a lieu dans votre abonnement, vous pouvez envisager de retarder certaines constructions d’images. L’utilisation simultanée de l’ACI dans votre abonnement s’en trouve réduite. Si vos modèles d’image sont configurés pour les builds d’images automatiques à l’aide de déclencheurs, ces builds ayant échoué seront automatiquement retentées par Azure Image Builder.
  • Si les limites ACI actuelles pour votre abonnement sont trop faibles pour prendre en charge vos scénarios de création d’images, vous pouvez demander une augmentation de votre quota ACI.

Remarque

Les ressources ACI sont requises pour les builds d’images isolées.

Trop d’instances Azure Container Instances déployées au cours d’une période donnée

Erreur

« Trop d’instances Azure Container Instances déployées au cours d’une période donnée »

Cause

Votre abonnement ne dispose pas d’un quota suffisant d’Azure Container Instances (ACI) pour permettre à Azure Image Builder de construire des images simultanément.

Solution

Vous pouvez effectuer les opérations suivantes :

  • Réessayez vos builds ayant échoué de manière moins simultanée.
  • Si les limites ACI actuelles pour votre abonnement sont trop faibles pour prendre en charge vos scénarios de création d’images, vous pouvez demander une augmentation de votre quota ACI.

Échec de build d’image isolé

Erreur

Les builds Azure Image Builder échouent en raison d’une build d’image isolée.

Cause

Les builds Azure Image Builder peuvent échouer pour des raisons répertoriées ailleurs dans le présent document. Cependant, il existe une faible probabilité qu’une construction échoue en raison d’une construction d’image isolée, en fonction de votre scénario, des quotas d’abonnement ou d’une erreur de service imprévue. Pour en savoir plus, reportez-vous à Builds d’images isolées.

Solution

Si vous déterminez qu’une build échoue en raison de builds d’images isolées, vous pouvez effectuer les opérations suivantes :

  • Vérifiez qu’aucune Azure Policy ne bloque le déploiement des ressources mentionnées dans la section Conditions préalables, en particulier Azure Container Instances, réseaux virtuels Azure et points de terminaison privés Azure.
  • Vérifiez que votre abonnement dispose d’un quota suffisant d’Azure Container Instances pour prendre en charge toutes vos builds d’images simultanées. Pour en savoir plus, reportez-vous à Quota dépassé d’Azure Container Instances.

Azure Image Builder déploie actuellement des builds d’images isolées. Des modèles d’image spécifiques ne sont pas liés aux builds d’images isolées et le même modèle d’image peut ou non utiliser des builds d’images isolées pendant différentes builds. Vous pouvez effectuer les opérations suivantes pour exécuter temporairement votre build sans builds d’images isolées.

  • Effectuez une nouvelle tentative de votre build. Étant donné que les modèles d’image ne sont pas liés à la fonctionnalité Builds d’images isolées, la nouvelle tentative d’une build a une probabilité élevée de réexécuter sans builds d’images isolées.

Si aucune de ces solutions n’atténue les builds d’images défaillantes, vous pouvez contacter le support Azure pour refuser temporairement votre abonnement des builds d’images isolées. Pour plus d’informations, consultez Créer une demande de support Azure.

Remarque

Les builds d’images isolées seront finalement activées dans toutes les régions et tous les modèles. Par conséquent, les atténuations ci-dessus doivent être considérées comme temporaires et la cause sous-jacente des défaillances de build doit être traitée.

La build est annulée une fois le contexte d’annulation de contexte annulé

Error

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

Cause

VM Image Builder utilise le port 22 (Linux) ou 5986 (Windows) pour se connecter à la machine virtuelle de build. Cela se produit quand le service est déconnecté de la machine virtuelle de build pendant une génération d’image. Les raisons de la déconnexion peuvent varier, mais l’activation ou la configuration d’un pare-feu dans le script peuvent bloquer les ports mentionnés.

Solution

Passez en revue vos scripts pour connaître les modifications ou activations du pare-feu ou les modifications de SSH ou WinRM, et assurez-vous que les modifications autorisent une connectivité constante entre le service et la machine virtuelle de build sur les ports mentionnés. Pour plus d’informations, consultez les options de réseau de VM Image Builder.

Erreurs JWT dans le journal au début de la build

Error

Au début du processus de création de la build, cette dernière échoue et le journal indique une erreur JWT (JSON Web Token) :

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:

Cause

La valeur buildTimeoutInMinutes du modèle est comprise entre 1 et 5 minutes.

Solution

Comme décrit dans Créer un modèle VM Image Builder, le délai d’attente doit être défini sur 0 pour utiliser la valeur par défaut ou sur une valeur supérieure à 5 minutes pour remplacer la valeur par défaut. Remplacez le délai d’attente de votre modèle par 0 pour utiliser la valeur par défaut ou sur un minimum de 6 minutes.

Erreurs de suppression de ressources

Erreur

Les ressources intermédiaires sont nettoyées vers la fin de la génération et le journal de personnalisation peut afficher plusieurs erreurs de suppression de ressource :

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"...

Cause

Ces messages du journal des erreurs sont en grande partie sans gravité, car les suppressions de ressources sont retentées plusieurs fois et, en général, elles finissent par aboutir. Vous pouvez le vérifier en continuant à suivre les journaux de suppression jusqu’à ce que vous observiez un message de réussite. Vous pouvez également examiner le groupe de ressources de préproduction pour vérifier si la ressource a été supprimée.

La réalisation de ces observations est particulièrement importante dans les échecs de build, où ces messages d’erreur peuvent vous conduire à conclure qu’ils sont la raison des échecs, même si les erreurs réelles peuvent se trouver ailleurs.

Erreur

Lorsque les images sont bloquées dans la suppression du modèle, le journal de personnalisation peut afficher l’erreur ci-dessous :

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=[]

Cause

L’erreur se produit car l’interface réseau est actuellement utilisée avec un point de terminaison privé.

Solution

Pour résoudre le problème, supprimez les ressources ci-dessous une par une dans l’ordre spécifique :

  1. Connexion de point de terminaison privé. Vous pouvez le trouver dans la ressource de service de liaison privée en accédant à l’onglet « Connexions de point de terminaison privé » sur la page de ressources du service de liaison privée.
  2. Service de liaison privée
  3. Interface réseau et équilibreur de charge.
  4. Groupe de ressources.
  5. Modèle d’image.

Pour obtenir une assistance supplémentaire, vous pouvez contacter le support Azure pour résoudre l’erreur de suppression bloquée.

Distribuer la cible introuvable dans la demande de mise à jour

Erreur

Validation failed: Distribute target with Runoutput name <runoutputname> not found in the update request. Deleting a distribution target is not allowed.

Cause

Cette erreur se produit lorsqu’une cible de distribution existante n’est pas trouvée dans le corps de la demande Patch.

Solution

Le tableau de distribution doit contenir toutes les cibles de distribution, c’est à dire les nouvelles cibles (le cas échéant), les cibles existantes sans modification et les cibles mises à jour. Si vous souhaitez supprimer une cible de distribution existante, supprimez et recréez le modèle d’image, car la suppression d’une cible de distribution n’est actuellement pas prise en charge par le biais de l’API Patch.

Champs obligatoires manquants

Erreur

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.

Cause

Cette erreur se produit lorsqu’un champ obligatoire est manquant à partir d’une cible de distribution.

Solution

Lors de la création d’une demande, indiquez chaque champ obligatoire dans une cible de distribution, même s’il n’y a aucune modification.

Tâches DevOps

Résoudre les problèmes de la tâche

La tâche échoue uniquement si une erreur se produit pendant la personnalisation. Dans ce cas, la tâche signale l’échec et quitte le groupe de ressources de préproduction, avec les journaux, afin que vous puissiez identifier le problème.

Pour localiser le journal, vous devez connaître le nom du modèle. Accédez à Pipeline>Build ayant échoué, puis explorez la tâche DevOps de VM Image Builder.

Vous verrez le journal et un nom de modèle :

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
  1. Accédez au portail Azure, recherchez le nom du modèle dans le groupe de ressources, puis recherchez le groupe de ressources en tapant IT_*.
  2. Sélectionnez le nom du compte de stockage >Objets blob>Conteneurs>Journaux.

Résoudre les problèmes de builds réussies

Vous devrez peut-être parfois examiner les builds réussies et passer en revue leurs journaux. Comme mentionné, si la génération de l’image réussit, le groupe de ressources de préproduction qui contient les journaux est supprimé dans le cadre du nettoyage. Toutefois, pour empêcher un nettoyage automatique, vous pouvez introduire une sleep après la commande inline, puis afficher les journaux quand la build est suspendue. Pour ce faire, procédez comme suit :

  1. Mettez à jour la commande inline en ajoutant Write-Host / Echo “Sleep”. Cela vous donne le temps d’effectuer une recherche dans le journal.
  2. Ajoutez une valeur sleep d’au moins 10 minutes en utilisant une commande Start-Sleep ou une commande Linux Sleep.
  3. Utilisez cette méthode pour identifier l’emplacement du journal, puis continuez à télécharger ou vérifier le journal jusqu’à ce qu’il atteigne sleep.

Opération annulée

Error

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

Cause

Si la build n’a pas été annulée par un utilisateur, elle a été annulée par l’agent utilisateur Azure DevOps. L’expiration du délai d’une heure s’est probablement produite en raison des capacités d’Azure DevOps. Si vous utilisez un projet et un agent privés, vous bénéficiez de 60 minutes de temps de build. Si le délai d’attente de la build expire, DevOps annule la tâche en cours d’exécution.

Pour plus d’informations sur les capacités et limitations d’Azure DevOps, consultez Agents hébergés par Microsoft.

Solution

Vous pouvez héberger vos propres agents DevOps ou chercher à réduire la durée de votre build. Par exemple, si vous distribuez dans Azure Compute Gallery, vous pouvez les répliquer dans une région ou les répliquer de façon asynchrone.

Ouverture de session Windows lente

Erreur

Cette erreur peut se produire quand vous créez une image Windows 10 en utilisant VM Image Builder, créez une machine virtuelle à partir de l’image, puis utilisez RDP (Remote Desktop Protocol). Vous attendez plusieurs minutes au premier écran d’ouverture de session, puis un écran bleu affiche le message suivant :

Please wait for the Windows Modules Installer

Solution

  1. Dans la build de l’image, vérifiez que :

    • Aucun redémarrage en attente n’est requis en ajoutant un personnalisateur de redémarrage Windows comme dernière personnalisation.
    • L’installation du logiciel est terminée.
  2. Ajoutez l’option /mode:vm au Sysprep par défaut utilisé par VM Image Builder. Pour plus d’informations, accédez à la section « Remplacer les commandes » sous « Les machines virtuelles créées à partir d’images VM Image Builder ne sont pas créées avec succès ».

Les machines virtuelles créées à partir d’images VM Image Builder ne sont pas créées avec succès

Par défaut, VM Image Builder exécute du code de déprovisionnement à la fin de chaque phase de personnalisation d’image pour généraliser l’image. La généralisation d’une image consiste à la configurer afin de pouvoir la réutiliser pour créer plusieurs machines virtuelles. Dans le cadre du processus, vous pouvez transmettre des paramètres de machine virtuelle, tels que le nom d’hôte, le nom d’utilisateur, etc. Dans Windows et Linux, VM Image Builder exécute respectivement Sysprep et waagent -deprovision.

Dans Windows, VM Image Builder utilise une commande Sysprep générique. Toutefois, cette commande peut ne pas convenir à chaque généralisation Windows réussie. Avec VM Image Builder, vous pouvez personnaliser la commande Sysprep. Notez que VM Image Builder est un outil d’automatisation d’image responsable de la bonne exécution de la commande Sysprep. Toutefois, vous pouvez avoir besoin de différentes commandes Sysprep pour rendre votre image réutilisable. Dans Linux, VM Image Builder utilise une commande waagent -deprovision+user générique. Pour plus d’informations, consultez Documentation de l’agent Linux Microsoft Azure.

Si vous migrez une personnalisation existante et que vous utilisez diverses commandes Sysprep ou waagent, vous pouvez essayer les commandes génériques de VM Image Builder. Si la création de la machine virtuelle échoue, utilisez vos commandes Sysprep ou waagent précédentes.

Supposons que vous avez utilisé VM Image Builder pour créer une image personnalisée Windows, mais que vous n’avez pas réussi à créer une machine virtuelle à partir de l’image. Par exemple, la création de la machine virtuelle ne parvient pas à se terminer ou expire. Dans cette hypothèse, effectuez l’une des opérations suivantes :

  • Passez en revue la documentation de Windows Server Sysprep.
  • Adressez une demande de support au support technique du service clientèle de Windows Server Sysprep. Il peut vous aider à résoudre votre problème et vous conseiller sur la commande Sysprep appropriée.

Emplacements de commande et noms de fichiers

Dans Windows :

c:\DeprovisioningScript.ps1

Dans Linux :

/tmp/DeprovisioningScript.sh

Commande Sysprep : 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 ...'

Commande -deprovision : Linux

sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync

Remplacer les commandes

Pour remplacer les commandes, utilisez les fournisseurs de script PowerShell ou de l’interpréteur de commandes pour créer les fichiers de commandes avec le nom de fichier exact, puis placez-les dans les répertoires listés précédemment. VM Image Builder lit ces commandes et écrit la sortie dans le fichier customization.log.

Obtenir de l’aide

Si vous vous êtes référé aux instructions et que vous rencontrez toujours des problèmes, vous pouvez créer une demande de support. Veillez à sélectionner le produit et la rubrique de support appropriés. Vous serez ainsi connecté à l’équipe du support technique Azure VM Image Builder.

Sélection du produit de la demande :

Product Family: Azure
Product: Virtual Machine Running (Window\Linux)
Support Topic: Azure Features
Support Subtopic: Azure Image Builder

Étapes suivantes

Pour plus d’informations, consultez Vue d’ensemble de VM Image Builder.