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. La liste exacte des ressources dépend de la configuration réseau spécifiée dans le modèle d’image. Veillez à vérifier qu’Azure Policy n’empêche pas VM Image Builder de créer ou d’utiliser les ressources nécessaires.
- Créez un groupe de ressources IT_.
- Créez un compte de stockage sans pare-feu.
- Déployez Azure Container Instances.
- Déployez des ressources de réseau virtuel Azure (et des sous-réseaux dans ce dernier).
- Déployez des ressources de point de terminaison privé Azure.
- Déployez Azure Files.
- 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 :
- Le modèle Image Builder utilise un groupe de ressources intermédiaire fourni par le client et l’identité MSI est supprimée avant la suppression du modèle d’image (scénario de groupe de ressources intermédiaire )
- Les identités de service managées (MSI) créées 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
Accès aux journaux en direct pendant la génération d’image
Pour surveiller efficacement la progression de votre génération d’image, vous pouvez accéder aux journaux en direct générés par Azure Image Builder (AIB) dans Azure Container Instances (ACI). Ces journaux fournissent des insights en temps réel sur le processus de génération, ce qui vous aide à identifier les problèmes ou à confirmer que la build se poursuit comme prévu. Suivez les étapes ci-dessous pour localiser et afficher ces journaux en direct.
- Démarrer la génération d’image : lancez le processus de génération d’image.
- Accéder aux groupes de ressources : accédez au portail Azure et sélectionnez « Groupes de ressources ». Filtrez par l’abonnement où la génération d’image a été lancée.
- Sélectionner le groupe de ressources : recherchez et sélectionnez le groupe de ressources intermédiaire associé à la génération d’image. Il s’agit du groupe de ressources qui contient les ressources de génération du service AIB. Pour plus d’informations sur le groupe de ressources intermédiaire, consultez Propriétés : stagingResourceGroup.
- Rechercher le conteneur de génération : dans ce groupe de ressources, recherchez la ressource nommée « vmimagebuilder-build-container-********** ». S’il n’est pas visible, attendez quelques minutes et actualisez la page.
- Accéder aux paramètres du conteneur : dans le volet gauche, sous « Paramètres », sélectionnez « Conteneurs ».
- Afficher les journaux : accédez à l’onglet « Journaux » pour afficher les journaux en direct pendant le processus de génération d’image.
Si vous ne voyez aucun journal, essayez d’actualiser le conteneur après quelques minutes.
Téléchargement du journal de personnalisation et/ou de validation après la génération d’image
Une fois la build d’image terminée, les journaux de personnalisation et de validation sont stockés dans un conteneur dans le compte de stockage dans le groupe de ressources intermédiaire créé par le service VM Image Builder. Pour plus d’informations sur le groupe de ressources intermédiaire, consultez Propriétés : stagingResourceGroup.
Remarque
Lorsque vous accédez au fichier customization.log
ou validation.log
, il est important de noter que si la build d’image a été exécutée plusieurs fois, il y aura plusieurs dossiers dans le conteneur packerlogs
. Ces dossiers sont organisés dans l’ordre entre la génération la plus ancienne et la plus récente.
Suivez les étapes ci-dessous pour localiser et télécharger le fichier customization.log
ou validation.log
:
- Sélectionner Compte de stockage : dans le portail Azure, accédez au compte de stockage approprié en filtrant les comptes de stockage au sein du groupe de ressources intermédiaire créé par le service VM Image Builder. Pour plus d’informations sur le groupe de ressources intermédiaire, consultez Propriétés : stagingResourceGroup.
- Accéder au stockage des données : sous le compte de stockage, accédez au stockage de données.
- Ouvrir le conteneur : sélectionnez l’option Conteneur , puis choisissez le conteneur
packerlogs
. - Choisir le dossier correct : dans le conteneur
packerlogs
, vous verrez plusieurs dossiers si la génération d’image a été exécutée plusieurs fois. Ces dossiers sont organisés de la génération la plus ancienne vers la version la plus récente. Sélectionnez le dossier correspondant à la build qui vous intéresse. - Télécharger le fichier journal : dans le dossier sélectionné, sélectionnez le fichier
customization.log
et/ouvalidation.log
, puis cliquez sur Télécharger pour télécharger son contenu.
Fonctionnement du 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 :
É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 ... ..
É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=""
É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!
É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
É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écutewaagent-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."}
É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
ouecho
. 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
Passez en revue le fichier customization.log. Identifiez le dernier personnalisateur à s’exécuter. Recherchez (telemetry) en partant du bas du journal.
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.Si vous utilisez le personnalisateur
File
pour télécharger des artefacts supérieurs à 20 Mo, consultez la section relative aux solutions de contournement.Examinez les erreurs et les dépendances dans le script qui peuvent entraîner l’attente du script.
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.
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.
Erreur lors de l’attente d’Azure Compute Gallery
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 Sysprep
vé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 :
- 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.
- Service de liaison privée
- Interface réseau et équilibreur de charge.
- Groupe de ressources.
- 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
- 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_*.
- 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 :
- Mettez à jour la commande inline en ajoutant Write-Host / Echo “Sleep”. Cela vous donne le temps d’effectuer une recherche dans le journal.
- Ajoutez une valeur
sleep
d’au moins 10 minutes en utilisant une commande Start-Sleep ou une commande LinuxSleep
. - 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
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.
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.