Risoluzione dei problemi di Image Builder per macchine virtuali di Azure

Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili

Usare questo articolo per risolvere i problemi comuni che possono verificarsi quando si usa Image Builder per macchine virtuali di Azure.

Prerequisiti

Quando si crea una build, eseguire le operazioni seguenti:

  • Il servizio Image Builder per macchine virtuali comunica con la macchina virtuale di compilazione usando WinRM o Secure Shell (SSH). Non* disabilitare queste impostazioni come parte della build.
  • Image Builder per macchine virtuali crea risorse nel gruppo di risorse di staging come parte delle build. Assicurarsi di verificare che Criteri di Azure non impedisca a Image Builder per macchine virtuali di creare o usare le risorse necessarie.
  • Verificare che Criteri di Azure non installi funzionalità indesiderate nella macchina virtuale di compilazione, ad esempio estensioni di Azure.
  • Assicurarsi che Image Builder per macchine virtuali disponga delle autorizzazioni corrette per leggere/scrivere le immagini e per connettersi all'account di archiviazione. Per altre informazioni, vedere la documentazione sulle autorizzazioni per l'interfaccia della riga di comando di Azure o Azure PowerShell.
  • Image Builder per macchine virtuali non esegue la build se gli script o i comandi inline hanno esito negativo con errori (codici di uscita diversi da zero). Assicurarsi di aver testato gli script personalizzati e di aver verificato che vengano eseguiti senza errori (codice di uscita 0) o che non richiedano l'input dell'utente. Per altre informazioni, vedere Creare un'immagine di Desktop virtuale Azure usando Image Builder per macchine virtuali e PowerShell.
  • Verificare che la sottoscrizione disponga di una quota sufficiente di Istanze di Azure Container.
    • Ogni compilazione dell'immagine può distribuire fino a una risorsa temporanea dell'istanza di Azure Container (di quattro core standard) nel gruppo di risorse di staging. Queste risorse sono necessarie per compilazioni di immagini isolate.

Gli errori di Image Builder per macchine virtuali possono verificarsi in due aree:

  • Durante l'invio del modello di immagine
  • Durante la compilazione delle immagini

Nota

Le immagini con protezione avanzata CIS (Linux o Windows) in Azure Marketplace, gestite da CIS, possono causare errori di compilazione con il servizio Image Builder di Azure a causa delle loro configurazioni. Ad esempio:

  • Le immagini Windows con protezione avanzata CIS potrebbero compromettere la connettività di WinRM, un prerequisito per la build AIB.
  • Le immagini CIS di Linux possono non riuscire a causa di problemi di autorizzazione chmod +x.

Risolvere gli errori di invio del modello di immagine

Gli errori di invio del modello di immagine vengono restituiti solo all'invio. Non esiste un log degli errori di invio del modello di immagine. Se si verifica un errore durante l'invio, è possibile restituire l'errore controllando lo stato del modello, in particolare esaminando ProvisioningState e ProvisioningErrorMessage/provisioningError.

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

Nota

Per PowerShell, è necessario installare i moduli di PowerShell per Image Builder per macchine virtuali.

Importante

La versione API 2021-10-01 introduce una modifica allo schema di errore che farà parte di ogni versione futura dell'API. Se sono presenti automazioni di Image Builder per macchine virtuali di Azure, tenere presente il nuovo output degli errori quando si passa alla versione 2021-10-01 dell'API o a una versione successiva. Dopo essere passati alla versione più recente dell'API, è consigliabile non ripristinare una versione precedente, perché sarà necessario modificare di nuovo l'automazione per produrre lo schema di errore precedente. Non è previsto che lo schema di errore venga modificato di nuovo nelle versioni future.

Output degli errori per la versione 2020-02-14 e per le versioni precedenti

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

Output degli errori per la versione 2021-10-01 e per le versioni precedenti

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

Le sezioni seguenti presentano indicazioni per la risoluzione dei problemi per gli errori comuni di invio di modelli di immagine.

L'aggiornamento dei modelli di immagine non è attualmente supportato

Error

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

Causa

Il modello esiste già.

Soluzione

Se si invia un modello di configurazione dell'immagine e l'invio ha esito negativo, esiste ancora un artefatto del modello non riuscito. Eliminare il modello non riuscito.

Riassegnazione dell'identità del servizio gestito nei modelli di immagine

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.

Causa

In alcuni casi non è possibile usare le identità del servizio gestito assegnate al modello di immagine:

  • Il modello di Image Builder usa un gruppo di risorse di staging fornito dal cliente e l'identità del servizio gestito viene eliminata prima che venga eliminato il modello di immagine (scenario del gruppo di risorse di staging)
  • Le identità del servizio gestito create e assegnate al modello di immagine non possono essere usate

Soluzione

Usare l'interfaccia della riga di comando di Azure per reimpostare l'identità nel modello di immagine. Assicurarsi di aggiornare l'interfaccia della riga di comando di Azure alla versione 2.45.0 o a una versione successiva.

Rimuovere l'identità gestita dal modello di destinazione di Image Builder

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

Riassegnare l'identità al modello di destinazione di Image Builder

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

L'operazione della risorsa è stata completata con lo stato di provisioning del terminale "Non riuscito"

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

Causa

Nella maggior parte dei casi, l'errore di distribuzione delle risorse si verifica a causa di autorizzazioni mancanti. Questo errore potrebbe anche essere causato da un conflitto con il gruppo di risorse di staging.

Soluzione

A seconda dello scenario, Image Builder per macchine virtuali potrebbe richiedere le autorizzazioni per:

  • L'immagine di origine o il gruppo di risorse della Raccolta di calcolo di Azure (in precedenza Raccolta immagini condivise).
  • L'immagine di distribuzione o la risorsa della Raccolta di calcolo di Azure.
  • L'account di archiviazione, il contenitore o il BLOB a cui accede la funzione di personalizzazione File.

Assicurarsi anche che il nome del gruppo di risorse di staging sia specificato in modo univoco per ogni modello di immagine.

Per altre informazioni sulla configurazione delle autorizzazioni, vedere Configurare le autorizzazioni di Image Builder per macchine virtuali usando l'interfaccia della riga di comando di Azure o Configurare le autorizzazioni di Image Builder per macchine virtuali usando PowerShell.

Errore durante il recupero di un'immagine gestita

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

Causa

Autorizzazioni mancanti.

Soluzione

A seconda dello scenario, Image Builder per macchine virtuali potrebbe richiedere le autorizzazioni per:

  • L'immagine di origine o il gruppo di risorse della Raccolta di calcolo di Azure.
  • L'immagine di distribuzione o la risorsa della Raccolta di calcolo di Azure.
  • L'account di archiviazione, il contenitore o il BLOB a cui accede la funzione di personalizzazione File.

Per altre informazioni sulla configurazione delle autorizzazioni, vedere Configurare le autorizzazioni di Image Builder per macchine virtuali usando l'interfaccia della riga di comando di Azure o Configurare le autorizzazioni di Image Builder per macchine virtuali usando PowerShell.

Il passaggio di compilazione non è riuscito per la versione dell'immagine

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

Causa

Image Builder per macchine virtuali non è in grado di individuare l'immagine di origine.

Soluzione

Assicurarsi che l'immagine di origine sia corretta ed esista nel percorso di Image Builder per macchine virtuali.

Download di un file esterno in un file locale

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

Causa

Il nome o il percorso del file non è corretto oppure il percorso non è raggiungibile.

Soluzione

Assicurarsi che il file sia raggiungibile. Verificare che il nome e il percorso siano corretti.

Errore di autorizzazione durante la creazione del disco

La build di Image Builder di Azure ha esito negativo con un errore di autorizzazione simile al seguente:

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

Causa

Questo errore si verifica quando si tenta di specificare un gruppo di risorse e una rete virtuale preesistente per il servizio Image Builder di Azure con un'immagine di origine Windows.

Soluzione

Sarà necessario assegnare il ruolo di collaboratore al gruppo di risorse per l'entità servizio corrispondente all'app proprietaria di Image Builder di Azure usando il comando dell'interfaccia della riga di comando o le istruzioni del portale riportate di seguito.

Verificare innanzitutto che l'entità servizio sia associata all'app proprietaria di Image Builder di Azure usando il comando dell'interfaccia della riga di comando seguente:

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

Per implementare questa soluzione usando l'interfaccia della riga di comando, usare quindi il comando seguente:

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

Per implementare questa soluzione nel portale, seguire le istruzioni riportate in questa documentazione: Assegnare ruoli di Azure usando il portale di Azure - Controllo degli accessi in base al ruolo di Azure.

Per il Passaggio 1: Identificare l'ambito necessario: l'ambito necessario è il gruppo di risorse.

Per il Passaggio 3: Selezionare il ruolo appropriato: il ruolo è Collaboratore.

Per il Passaggio 4: Selezionare gli utenti per cui è necessario l'accesso: selezionare il membro “Image Builder per macchine virtuali di Azure”

Passare quindi al Passaggio 6: Assegnare un ruolo per assegnare il ruolo.

Risolvere gli errori di compilazione

Per gli errori di compilazione delle immagini, ottenere l'errore da lastrunstatus e quindi esaminare i dettagli nel file customization.log.

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

Log di personalizzazione

Quando la compilazione dell'immagine è in esecuzione, i log vengono creati e archiviati in un account di archiviazione. Image Builder per macchine virtuali crea l'account di archiviazione nel gruppo di risorse temporaneo quando l'utente crea un artefatto del modello di immagine.

Il nome dell'account di archiviazione usa il modello IT_<ImageResourceGroupName><TemplateName><GUID> (ad esempio, IT_aibmdi_helloImageTemplateLinux01).

Per visualizzare il file customization.log nel gruppo di risorse, selezionare Account di archiviazione>BLOB>packerlogs, selezionare directorye quindi il file customization.log.

Informazioni sul log di personalizzazione

Il log è dettagliato. Illustra la compilazione dell'immagine, inclusi eventuali problemi con la distribuzione dell'immagine, ad esempio la replica di Raccolta di calcolo di Azure. Questi errori vengono visualizzati nel messaggio di errore dello stato del modello di immagine.

Il file customization.log include le fasi seguenti:

  1. Fase di Distribuzione della macchina virtuale di compilazione e delle dipendenze usando i modelli di Resource Manager nel gruppo di risorse di staging IT_. Questa fase include più POST al provider di risorse di Image Builder per macchine virtuali:

    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. Fase Stato delle distribuzioni. Questa fase include lo stato di distribuzione di ogni risorsa:

    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. Fase di Connessione alla macchina virtuale di compilazione.

    In Windows Image Builder per macchine virtuali si connette tramite 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.
    

    In Linux Image Builder per macchine virtuali si connette tramite 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. Fase di Esecuzione delle personalizzazioni. Quando vengono eseguite le personalizzazioni, è possibile identificarle esaminando il file customization.log. Cercare i (telemetria).

    (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. Fase di Deprovisioning. Image Builder per macchine virtuali aggiunge una funzione di personalizzazione nascosta. Il passaggio di deprovisioning è responsabile della preparazione della macchina virtuale per il deprovisioning. In Windows viene eseguito Sysprep (usando c:\DeprovisioningScript.ps1). In Linux viene eseguito waagent-deprovision (usando /tmp/DeprovisioningScript.sh).

    Ad esempio:

    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. Fase di Pulizia. Al termine della compilazione, le risorse di Image Builder per macchine virtuali vengono eliminate.

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

Suggerimenti per la risoluzione dei problemi relativi allo script o alla personalizzazione inline

  • Testare il codice prima di fornirlo a Image Builder per macchine virtuali.
  • Assicurarsi che Criteri e Firewall di Azure consentano la connettività alle risorse remote.
  • Inviare commenti alla console usando Write-Host o echo. In questo modo è possibile cercare il file customization.log.

Risolvere problemi di compilazione comuni

La distribuzione del modello non è riuscita a causa di una violazione dei criteri

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

Causa

L'errore di violazione dei criteri precedente è dovuto all'uso di Azure Key Vault con accesso pubblico disabilitato. Al momento, Image Builder di Azure non supporta questa configurazione.

Soluzione

Azure Key Vault deve essere creato con l'accesso pubblico abilitato.

Errore del comando di compilazione di 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."

Causa

Errore di personalizzazione.

Soluzione

Esaminare il log per individuare gli errori della funzione di personalizzazione. Cercare i (telemetria).

Ad esempio:

(telemetry) Starting provisioner windows-update
(telemetry) ending windows-update
(telemetry) Starting provisioner powershell
(telemetry) ending powershell
(telemetry) Starting provisioner file
(telemetry) ending file
(telemetry) Starting provisioner windows-restart
(telemetry) ending windows-restart

(telemetry) Finalizing. - This means the build has finished

Timeout superato

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'

Causa

La build ha superato il timeout di compilazione. Questo errore viene visualizzato in "lastrunstatus".

Soluzione

  1. Esaminare il file customization.log. Identificare l'ultima funzione di personalizzazione da eseguire. Cercare (telemetria), a partire dalla fine del log.

  2. Controllare le personalizzazioni dello script. Le personalizzazioni potrebbero non eliminare l'interazione dell'utente per i comandi, ad esempio le opzioni quiet. Ad esempio, apt-get install -y comporta che l'esecuzione dello script attenda l'interazione dell'utente.

  3. Se si usa la funzione di personalizzazione File per scaricare artefatti con dimensioni maggiori di 20 MB, vedere la sezione delle soluzioni alternative.

  4. Esaminare gli errori e le dipendenze nello script che potrebbero causare l'attesa dello script.

  5. Se si prevede che le personalizzazioni richiedano più tempo, aumentare il valore di buildTimeoutInMinutes. Il valore predefinito è 4 ore.

  6. Se sono presenti azioni a elevato utilizzo di risorse, ad esempio il download di gigabyte (GB) di file, prendere in considerazione le dimensioni della macchina virtuale di compilazione sottostante. Il servizio usa una macchina virtuale Standard_D1_v2. La macchina virtuale ha 1 vCPU e 3,5 GB di memoria. Se si scaricano 50 GB, è probabile che le risorse della macchina virtuale si esauriscano e si verifichino errori di comunicazione tra Image Builder per macchine virtuali e la macchina virtuale di compilazione. Ripetere la compilazione usando una macchina virtuale con una memoria più grande impostando il valore per VM_size.

Tempi lunghi per il download di file

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

Causa

La funzione di personalizzazione File scarica un file di grandi dimensioni.

Soluzione

La funzione di personalizzazione File è adatta solo per i download di file di piccole dimensioni (inferiori a 20 MB). Per i download di file di dimensioni maggiori, usare uno script o un comando inline. Ad esempio, in Linux è possibile usare wget o curl. In Windows è possibile usare Invoke-WebRequest.

Il generatore continua a non eseguire Windows-Restart con il codice di errore 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.

Causa

Il passaggio di Windows Update viene dichiarato troppo presto nelle immagini che si basano su Windows Server 2016.

Soluzione

Aumentare restartTimeout da 15 minuti a 30 minuti.

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}

Causa

Image Builder per macchine virtuali ha raggiunto il timeout in attesa dell'aggiunta e replica dell'immagine nella Raccolta di calcolo di Azure. Se l'immagine viene inserita nella raccolta, è possibile presupporre che la compilazione dell'immagine abbia avuto esito positivo. Tuttavia, il processo nel suo complesso non è riuscito perché Image Builder per macchine virtuali era in attesa che Raccolta di calcolo di Azure completasse la replica. Anche se la compilazione non è riuscita, la replica continua. È possibile ottenere le proprietà della versione dell'immagine controllando la distribuzione runOutput.

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

Soluzione

Aumentare il valore di buildTimeoutInMinutes.

Numero ridotto di eventi di informazioni sulle risorse di Windows

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

Causa

Esaurimento delle risorse. Questo problema si verifica comunemente quando Windows Update viene eseguito con la macchina virtuale di compilazione predefinita di dimensioni D1_V2.

Soluzione

Aumentare le dimensioni della macchina virtuale di compilazione.

La compilazione è stata completata ma non sono stati creati artefatti

Avviso

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

Soluzione

Questo avviso può essere ignorato.

Ignorare la creazione di immagini

Avviso

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

Soluzione

Questo avviso può essere ignorato.

Resource not found

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

Causa

Autorizzazioni mancanti.

Soluzione

Controllare di nuovo che Image Builder per macchine virtuali disponga di tutte le autorizzazioni necessarie.

Per altre informazioni sulla configurazione delle autorizzazioni, vedere Configurare le autorizzazioni di Image Builder per macchine virtuali usando l'interfaccia della riga di comando di Azure o Configurare le autorizzazioni di Image Builder per macchine virtuali usando PowerShell.

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

Causa

La causa potrebbe essere un problema di temporizzazione a causa delle dimensioni della macchina virtuale D1_V2. Se le personalizzazioni sono limitate e vengono eseguite in meno di tre secondi, i comandi Sysprep vengono eseguiti da Image Builder per macchine virtuali per effettuare il deprovisioning. Quando Image Builder per macchine virtuali effettua il deprovisioning, il comando Sysprep controlla WindowsAzureGuestAgent, che potrebbe non essere installato in modo completo e potrebbe causare il problema di temporizzazione.

Soluzione

Per evitare il problema di temporizzazione, è possibile aumentare le dimensioni della macchina virtuale oppure aggiungere una personalizzazione della sospensione di PowerShell di 60 secondi.

Provider di Istanze di Azure Container non registrato

Error

Azure Container Instances provider not registered for your subscription.

Causa

Il provider di Istanze di Azure Container non è registrato per la sottoscrizione del modello.

Soluzione

Registrare il provider di Istanze di Azure Container per la sottoscrizione del modello e aggiungere i comandi dell'interfaccia della riga di comando di Azure o di PowerShell:

  • Interfaccia della riga di comando di Azure: az provider register -n Microsoft.ContainerInstance
  • PowerShell: Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance

Quota di Istanze di Azure Container superata

Error

Azure Container Instances quota exceeded"

Causa

La sottoscrizione non ha una quota sufficiente di Istanze di Azure Container affinché Image Builder di Azure crei correttamente un'immagine.

Soluzione

Per rendere disponibile la quota di Istanze di Azure Container per Image Builder di Azure è possibile eseguire le seguenti operazioni:

  • Cercare altri utilizzi di Istanze di Azure Container nella sottoscrizione e rimuovere eventuali istanze non necessarie per rendere disponibile la quota per Image Builder di Azure.
  • Image Builder di Azure distribuisce Istanze di Azure Container solo temporaneamente durante l'esecuzione di una compilazione. Queste istanze vengono eliminate al termine della compilazione. Se nella sottoscrizione sono in corso troppe compilazioni di immagini simultanee, è possibile ritardarne alcune. In questo modo si riduce l'utilizzo simultaneo di Istanze di Azure Container nella sottoscrizione. Se i modelli di immagine sono configurati affinché le compilazioni automatiche delle immagini usino i trigger, tali compilazioni non riuscite verranno ritentate automaticamente da Image Builder di Azure.
  • Se i limiti correnti di Istanze di Azure Container per la sottoscrizione sono troppo bassi per supportare gli scenari di compilazione delle immagini, è possibile richiedere un aumento della quota di Istanze di Azure Container.

Nota

Le risorse di Istanze di Azure Container sono necessarie per compilazioni di immagini isolate.

Troppe Istanze di Azure Container distribuite in un periodo di tempo

Error

"Troppe Istanze di Azure Container distribuite in un periodo di tempo"

Causa

La sottoscrizione non ha una quota sufficiente di Istanze di Azure Container affinché Image Builder di Azure crei correttamente e contemporaneamente le immagini.

Soluzione

Puoi eseguire quanto segue:

  • Ripetere le compilazioni non riuscite in modo meno simultaneo.
  • Se i limiti correnti di Istanze di Azure Container per la sottoscrizione sono troppo bassi per supportare gli scenari di compilazione delle immagini, è possibile richiedere un aumento della quota di Istanze di Azure Container.

Errore di compilazione dell'immagine isolata

Error

Le compilazioni di Image Builder di Azure hanno esito negativo a causa perché la compilazione di immagini è isolata.

Causa

Le compilazioni di Image Builder di Azure possono non riuscire per altri motivi elencati in questo documento. Tuttavia, esiste una piccola probabilità che una compilazione non riesca a causa di compilazioni di immagini isolate a seconda dello scenario, delle quote di sottoscrizione o di un errore imprevisto del servizio. Per altre informazioni, vedere Compilazioni di immagini isolate.

Soluzione

Se si determina che una compilazione non riesce a causa di compilazioni di immagini isolate, è possibile eseguire le operazioni seguenti:

  • Assicurarsi che nessun criterio di Azure blocchi la distribuzione delle risorse indicate nella sezione Prerequisiti, in particolare Istanze di Azure Container, reti virtuali di Azure ed endpoint privati di Azure.
  • Verificare che la sottoscrizione disponga di una quota sufficiente di Istanze di Azure Container per supportare tutte le compilazioni di immagini simultanee. Per altre informazioni, vedere la sezione relativa alla quota di Istanze di Azure Container superata.

Image Builder di Azure è attualmente in fase di distribuzione di compilazioni di immagini isolate. I modelli di immagine specifici non sono associati alle compilazioni di immagini isolate e lo stesso modello di immagine potrebbe o meno utilizzare compilazioni di immagini isolate durante compilazioni diverse. Per eseguire temporaneamente la compilazione senza compilazioni di immagini isolate è possibile eseguire le operazioni seguenti.

  • Ripetere la compilazione. Poiché i modelli di immagine non sono associati alla funzionalità Compilazioni di immagini isolate, la ripetizione di una compilazione ha una probabilità elevata di riesecuzione senza compilazioni di immagini isolate.

Se nessuna di queste soluzioni risolve gli errori delle compilazioni di immagini, è possibile contattare il supporto tecnico di Azure per rifiutare temporaneamente la sottoscrizione di compilazioni di immagini isolate. Per altre informazioni, vedere Creare una richiesta di supporto di Azure.

Nota

Le compilazioni di immagini isolate verranno infine abilitate in tutte le aree e in tutti i modelli. Pertanto, le mitigazioni precedenti devono essere considerate temporanee e la causa sottostante degli errori di compilazione deve essere risolta.

La compilazione viene annullata dopo l'annullamento del contesto

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

Causa

Image Builder per macchine virtuali usa la porta 22 (Linux) o 5986 (Windows) per connettersi alla macchina virtuale di compilazione. Ciò si verifica quando il servizio viene disconnesso dalla macchina virtuale di compilazione durante una compilazione di immagine. I motivi della disconnessione possono variare, ma l'abilitazione o la configurazione di un firewall nello script può bloccare le porte indicate in precedenza.

Soluzione

Esaminare gli script per identificare le modifiche o abilitare il firewall o per identificare le modifiche apportate a SSH o a WinRM e assicurarsi che le modifiche consentano una connettività costante tra il servizio e la macchina virtuale di compilazione sulle porte indicate in precedenza. Per altre informazioni, vedere Opzioni di rete di Image Builder per macchine virtuali.

Errori del token JWT nel log all'inizio della compilazione

Error

All'inizio del processo di compilazione, la compilazione ha esito negativo e il log indica un errore del token JSON Web (JWT):

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:

Causa

Il valore buildTimeoutInMinutes nel modello è impostato su un valore da 1 a 5 minuti.

Soluzione

Come descritto in Creare un modello di Image Builder per macchine virtuali, il timeout deve essere impostato su 0 per usare il valore predefinito o su un valore superiore a 5 minuti per eseguire l'override del valore predefinito. Modificare il timeout nel modello impostando 0 per usare il valore predefinito o su un valore di almeno 6 minuti.

Errori nell'eliminazione delle risorse

Error

Le risorse intermedie vengono pulite verso la fine della compilazione e il log di personalizzazione potrebbe mostrare diversi errori di eliminazione delle risorse:

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

Causa

Questi messaggi del log degli errori sono per lo più innocui, perché le eliminazioni delle risorse vengono ritentate più volte e, in genere, alla fine hanno esito positivo. È possibile verificarlo continuando a seguire i log di eliminazione fino a quando non viene visualizzato un messaggio di operazione riuscita. In alternativa, è possibile esaminare il gruppo di risorse di staging per verificare se la risorsa è stata eliminata.

Queste osservazioni sono importanti in particolare negli errori di compilazione, dove i messaggi di errore possono essere ritenuti il motivo degli errori, anche quando gli errori effettivi potrebbero essere altri.

Error

Quando le immagini sono bloccate nell'eliminazione del modello, il log di personalizzazione potrebbe mostrare l'errore seguente:

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

Causa

L'errore si verifica perché l'interfaccia di rete è attualmente in uso con un endpoint privato.

Soluzione

Per risolvere il problema, eliminare le risorse seguenti una per una nell'ordine specifico:

  1. Connessione endpoint privato. È possibile trovarla nella risorsa del servizio collegamento privato passando alla scheda "connessioni endpoint privato" nella pagina della risorsa del servizio collegamento privato.
  2. Servizio collegamento privato.
  3. Interfaccia di rete e bilanciamento del carico.
  4. Gruppo di risorse.
  5. Modello di immagine.

Per ulteriore assistenza, è possibile contattare il supporto tecnico di Azure per risolvere l'errore di eliminazione bloccata.

Destinazione della distribuzione non trovata nella richiesta di aggiornamento

Error

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

Causa

Questo errore si verifica quando la destinazione di una distribuzione esistente non viene trovata nel corpo della richiesta Patch.

Soluzione

La matrice della distribuzione deve contenere tutte le destinazioni della distribuzione, ovvero nuove destinazioni (se presenti), destinazioni esistenti senza modifiche e destinazioni aggiornate. Se si vuole rimuovere una destinazione della distribuzione esistente, eliminare e ricreare il modello di immagine perché l'eliminazione della destinazione di una distribuzione non è attualmente supportata tramite l'API Patch.

Campi obbligatorio mancanti

Error

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.

Causa

Questo errore si verifica quando manca un campo obbligatorio dalla destinazione di una distribuzione.

Soluzione

Quando si crea una richiesta, specificare ogni campo obbligatorio nella destinazione di una distribuzione anche se non è presente alcuna modifica.

Attività DevOps

Risolvere i problemi relativi all'attività

L'attività ha esito negativo solo se si verifica un errore durante la personalizzazione. In questo caso, l'attività segnala l'errore e lascia il gruppo di risorse di staging, con i log, in modo da poter identificare il problema.

Per individuare il log, è necessario conoscere il nome del modello. Passare a pipeline>compilazione non riuscita e quindi eseguire il drill-down nell'attività DevOps di Image Builder per macchine virtuali.

Verranno visualizzati il log e il nome di un modello:

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. Passare al portale di Azure, cercare il nome del modello nel gruppo di risorse e quindi cercare il gruppo di risorse digitando IT_*.
  2. Selezionare il nome dell'account di archiviazione >BLOB>contenitori>log.

Risolvere i problemi relativi alle compilazioni riuscite

In alcuni casi potrebbe essere necessario analizzare le compilazioni riuscite ed esaminarne i log. Come accennato in precedenza, se la compilazione dell'immagine ha esito positivo, il gruppo di risorse di staging che contiene i log verrà eliminato come parte della pulizia. Per evitare una pulizia automatica, tuttavia, è possibile introdurre un valore sleep dopo il comando inline e quindi visualizzare i log mentre la compilazione viene sospesa. A tale scopo, seguire questa procedura:

  1. Aggiornare il comando inline aggiungendo Write-Host/Echo “Sleep”. Questo consente di avere il tempo di eseguire una ricerca nel log.
  2. Aggiungere un valore sleep di almeno 10 minuti usando un comando Start-Sleep o Sleep di Linux.
  3. Usare questo metodo per identificare il percorso del log e quindi continuare a eseguire il download o il controllo del log fino a quando non si ottiene sleep.

L'operazione è stata annullata

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

Causa

Se la compilazione non è stata annullata da un utente, è stata annullata dall'agente utente di Azure DevOps. Molto probabilmente, il timeout di 1 ora si è verificato a causa delle funzionalità di Azure DevOps. Se si usa un progetto privato e un agente, si ottiene un tempo di compilazione di 60 minuti. Se la compilazione supera il timeout, DevOps annulla l'attività in esecuzione.

Per altre informazioni sulle funzionalità e sulle limitazioni di Azure DevOps, vedere Agenti ospitati da Microsoft.

Soluzione

È possibile ospitare agenti di DevOps personalizzati o cercare di ridurre il tempo di compilazione. Ad esempio, se si esegue la distribuzione in Raccolta di calcolo di Azure, è possibile replicarli in un'area o in modo asincrono.

Accesso lento a Windows

Error

Questo errore può verificarsi quando si crea un'immagine di Windows 10 usando Image Builder per macchine virtuali, si crea una macchina virtuale dall'immagine e poi si usa Remote Desktop Protocol (RDP). Dopo alcuni minuti di attesa alla prima schermata di accesso, una schermata blu mostra il messaggio seguente:

Please wait for the Windows Modules Installer

Soluzione

  1. Nella compilazione dell'immagine verificare che:

    • Non sono necessari riavvii in sospeso aggiungendo una funzione di personalizzazione di riavvio di Windows come ultima personalizzazione.
    • L'installazione del software sia stata completata.
  2. Aggiungere l'opzione /mode:vm a Sysprep predefinito usata da Image Builder per macchine virtuali. Per altre informazioni, vedere la sezione "Eseguire l'override dei comandi" in "Le macchine virtuali create da immagini di Image Builder per macchine virtuali non vengono create correttamente".

Le macchine virtuali create da immagini di Image Builder per macchine virtuali non vengono create correttamente

Per impostazione predefinita, Image Builder di Azure esegue il codice di deprovisioning alla fine di ogni fase di personalizzazione dell'immagine, in modo da generalizzare l'immagine. Generalizzare un'immagine significa configurarla per riutilizzarla per creare più macchine virtuali. Come parte del processo, è possibile passare alle impostazioni della macchina virtuale, ad esempio nome host, nome utente e così via. In Windows Image Builder per macchine virtuali esegue Sysprep e in Linux Image Builder per macchine virtuali esegue waagent -deprovision.

In Windows, Image Builder per macchine virtuali usa un comando generico Sysprep. Tuttavia, questo comando potrebbe non essere adatto a tutte le generalizzazioni di Windows completate correttamente. Con Image Builder per macchine virtuali è possibile personalizzare il comando Sysprep. Si noti che Image Builder per macchine virtuali è uno strumento di automazione delle immagini responsabile della corretta esecuzione del comando Sysprep. Ma potrebbero essere necessari comandi Sysprep diversi per rendere riutilizzabile l'immagine. In Linux Image Builder per macchine virtuali esegue usa un comando waagent -deprovision+user generico. Per altre informazioni, vedere la documentazione relativa all'agente Linux di Microsoft Azure.

Se si esegue la migrazione di una personalizzazione esistente e si usano vari comandi Sysprep o waagent, è possibile provare i comandi generici di Image Builder per macchine virtuali. Se la creazione della macchina virtuale non riesce, usare i comandi Sysprep o waagent precedenti.

Si supponga di aver usato correttamente Image Builder per macchine virtuali per creare un'immagine personalizzata di Windows, ma la macchina virtuale non è stata creata correttamente dall'immagine. Ad esempio, la creazione della macchina virtuale non viene completata o raggiunge il timeout. In questo caso, eseguire una delle operazioni seguenti:

  • Esaminare la documentazione su Sysprep di Windows Server.
  • Generare una richiesta di supporto per il team di supporto del servizio clienti di Sysprep di Windows Server. Può aiutare a risolvere il problema e consigliare il comando Sysprep corretto.

Posizione dei comandi e nomi di file

Windows:

c:\DeprovisioningScript.ps1

Linux:

/tmp/DeprovisioningScript.sh

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

Comando -deprovision: Linux

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

Eseguire l'override dei comandi

Per eseguire l'override dei comandi, usare lo strumento di provisioning dello script PowerShell o shell per creare i file del comando con il nome esatto del file e inserirli nelle directory elencate in precedenza. Image Builder per macchine virtuali legge questi comandi e scrive l'output nel file customization.log.

Ottenere supporto

Se si fa riferimento alle indicazioni e si verificano ancora problemi, è possibile aprire un caso di supporto. Assicurarsi di selezionare l'argomento di supporto e il prodotto corretti. In questo modo ci si connetterà con il team di supporto di Image Builder per macchine virtuali di Azure.

Selezione del prodotto in questione:

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

Passaggi successivi

Per altre informazioni, vedere la panoramica di Image Builder per macchine virtuali.