Condividi tramite


Risolvere i problemi relativi agli artefatti nelle macchine virtuali del lab in Azure DevTest Labs

Questo articolo illustra le possibili cause e i passaggi per la risoluzione dei problemi relativi agli artefatti nelle risorse della macchina virtuale di Azure DevTest Labs.

Gli artefatti sono strumenti, azioni o software che è possibile installare nelle macchine virtuali del lab durante o dopo la creazione della macchina virtuale. I proprietari del lab possono preselezionare gli artefatti obbligatori da applicare a tutte le macchine virtuali del lab durante la creazione e gli utenti del lab possono applicare artefatti alle macchine virtuali di cui sono proprietari. Diversi possibili problemi possono causare l'impossibilità di installare e applicare gli artefatti a un lab o di essere eseguiti correttamente in una macchina virtuale del lab.

Quando un artefatto sembra smettere di rispondere, il primo passaggio consiste nel cercare di determinare il motivo per cui il processo è bloccato. L'installazione dell'artefatto può essere bloccata durante la richiesta iniziale o non riuscire durante l'esecuzione della richiesta. È possibile risolvere gli errori degli artefatti dal portale di Azure o dalla macchina virtuale in cui si verifica l'errore.

Risolvere i problemi nel portale di Azure

Se un artefatto non viene applicato correttamente alla macchina virtuale del lab, è possibile iniziare esaminando lo stato della macchina virtuale nel portale di Azure. È possibile trovare informazioni sullo stato della macchina virtuale, verificare che sia in esecuzione e verificare che sia possibile applicare gli artefatti. I dati del log attività per la macchina virtuale del lab mostrano voci sui processi di installazione. È possibile controllare le voci per trovare informazioni sugli errori degli artefatti.

Controllare lo stato della macchina virtuale

Controllare lo stato della macchina virtuale nel portale di Azure seguendo questa procedura:

  1. Passare alla pagina Panoramica per la macchina virtuale del lab DevTest Labs e verificare che il computer sia In esecuzione:

    Screenshot che mostra come verificare che la macchina virtuale DevTest Labs sia in esecuzione.

  2. Selezionare Artefatti e aprire l'elenco degli artefatti per la macchina virtuale del lab:

    Screenshot che mostra come aprire l'elenco Artefatti per la macchina virtuale del lab.

  3. Selezionare l'opzione applica artefatti e verificare che la macchina virtuale del lab sia pronta per accettare gli artefatti applicati:

    Screenshot che mostra come verificare che gli artefatti possano essere applicati alla macchina virtuale DevTest Labs.

    Quando l'opzione Applica artefatti è disattivata, non è possibile applicare artefatti alla macchina virtuale del lab e viene visualizzato un messaggio di notifica nella pagina:

    Screenshot del messaggio che mostra che gli artefatti non possono essere applicati alla macchina virtuale DevTest Labs.

Usare il comando di PowerShell

È anche possibile usare Azure PowerShell per verificare se la macchina virtuale del lab può ricevere artefatti applicati.

Il comando GET seguente restituisce il flag canApplyArtifacts con valore True o False. Per eseguire il comando, sostituire il parametro $LabName/$VmName con il nome del lab e il nome della macchina virtuale e specificare il gruppo di risorse del lab nel parametro $LabRgName.

Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null
$vm = Get-AzResource `
        -Name "$LabName/$VmName" `
        -ResourceGroupName $LabRgName `
        -ResourceType 'microsoft.devtestlab/labs/virtualmachines' `
        -ApiVersion '2018-10-15-preview' `
        -ODataQuery '$expand=Properties($expand=ComputeVm)'
$vm.Properties.canApplyArtifacts

Analizzare i dettagli dell'artefatto non riuscito

Un artefatto può smettere di rispondere e alla fine viene visualizzato come Non riuscito nell'elenco degli artefatti per la macchina virtuale del lab.

Analizzare gli artefatti non riusciti seguendo questa procedura:

  1. Passare alla pagina elenco Artefatti per la macchina virtuale del lab e selezionare l'artefatto con lo stato Non riuscito:

    Screenshot che mostra come individuare e selezionare l'artefatto non riuscito per la macchina virtuale del lab.

  2. Verrà aperta la vista dei dettagli Artefatto. I dettagli includono il Messaggio di distribuzione e il Messaggio di estensione sull'errore dell'artefatto:

    Screenshot dei dettagli per l'artefatto non riuscito, incluse le informazioni sul messaggio di distribuzione e di estensione.

Esaminare i log attività

Per installare gli artefatti, DevTest Labs crea e distribuisce un modello di Azure Resource Manager (ARM) che richiede l'uso dell'estensione per script personalizzati. Un errore a questo livello viene visualizzato nei log attività per la sottoscrizione e per il gruppo di risorse che contiene la macchina virtuale del lab.

Nota

Quando si visualizzano i log attività, potrebbe essere necessario espandere le voci del processo di installazione per visualizzare i riepiloghi degli errori.

Esaminare le voci del log attività per verificare la presenza di errori relativi all'installazione o all'applicazione dell'artefatto nella macchina virtuale del lab con questa procedura:

  1. Passare alla pagina Log attività per la macchina virtuale del lab e individuare l'artefatto con stato Non riuscito:

    Screenshot che mostra come individuare la voce del log attività per un artefatto non riuscito nella macchina virtuale del lab.

  2. Selezionare la voce per aprire il riquadro dei dettagli e visualizzare le informazioni di log:

    • Se si sta tentando di applicare l'artefatto direttamente alla macchina virtuale del lab, cercare gli errori correlati al processo di installazione Creare o aggiornare un'estensione della macchina virtuale.

    • Se si sta creando una macchina virtuale e si applica l'artefatto durante il processo, cercare gli errori segnalati per il processo di installazione Crea o aggiorna macchina virtuale.

    Il titolo del riquadro corrisponde al titolo della voce, ad esempio Applicare artefatti alla macchina virtuale:

    Screenshot che mostra come visualizzare i dettagli per la voce del log attività per un artefatto non riuscito.

  3. Nel riquadro dei dettagli selezionare JSON per esaminare il contenuto del payload JSON. È possibile visualizzare l'errore alla fine del documento JSON:

    Screenshot che mostra come visualizzare i dettagli JSON per la voce del log attività per un artefatto non riuscito.

Analizzare il repository degli artefatti e l'account di archiviazione del lab

Quando DevTest Labs applica un artefatto, legge la configurazione e i file degli artefatti dai repository connessi. Se l'installazione o l'applicazione di un artefatto nella macchina virtuale del lab ha esito negativo, il problema potrebbe essere correlato all'accesso al repository.

Per impostazione predefinita, DevTest Labs ha accesso a repository di artefatti pubblici DevTest Labs. È anche possibile connettere un lab a un repository privato per accedere agli artefatti personalizzati. A seconda della configurazione, le macchine virtuali del lab potrebbero non avere accesso diretto al repository degli artefatti. DevTest Labs memorizza nella cache gli artefatti in un account di archiviazione lab creato alla prima inizializzazione del lab.

  • Se l'installazione di un artefatto personalizzato non riesce, assicurarsi che il token di accesso personale per il repository privato non sia scaduto. Se il token di accesso personale è scaduto, l'artefatto non è elencato e gli script che fanno riferimento agli artefatti del repository hanno esito negativo.

  • Se l'accesso all'account di archiviazione è bloccato, potrebbe essere visualizzato un errore simile a questo esempio:

    CSE Error: Failed to download all specified files. Exiting. Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
    

    Uno scenario in cui potrebbe verificarsi questo errore si verifica quando il traffico dalla macchina virtuale al servizio archiviazione di Azure è bloccato. L'errore viene visualizzato nel log attività del gruppo di risorse per la macchina virtuale del lab.

Identificare i problemi di connessione del repository all'account di archiviazione di Azure con questa procedura:

  1. Verificare la presenza di gruppi di sicurezza di rete aggiunti. Se vengono aggiunti criteri di sottoscrizione per configurare automaticamente i gruppi di sicurezza di rete in tutte le reti virtuali, ciò può influire sulla rete virtuale usata per la creazione delle macchine virtuali del lab.

  2. Verificare tutte le regole del gruppo di sicurezza di rete:

  3. Controllare l'account di archiviazione predefinito per il lab.

    L'account di archiviazione predefinito è il primo account di archiviazione creato durante la creazione del lab. Il nome inizia in genere con la lettera "a" e termina con un numero a più cifre, ad esempio a<labname>#.

    1. Passare alla pagina Panoramica per la macchina virtuale del lab di DevTest Labs e selezionare Visualizzatore di risorse.

    2. Nel diagramma individuare l'account di archiviazione con un nome corrispondente alla convenzione di denominazione descritta, a<labname>#.

    3. Selezionare la risorsa Account di archiviazione per visualizzare il menu popup e quindi selezionare Visualizza:

      Screenshot che mostra come selezionare l'opzione Visualizza per l'account di archiviazione per una risorsa lab di DevTest Labs.

    4. Nella pagina Panoramica dell'account di archiviazione espandere la sezione Sicurezza e rete nel menu a sinistra e selezionare Rete:

      Screenshot che mostra come visualizzare la configurazione di rete per l'account di archiviazione per una risorsa lab di DevTest Labs.

    5. Nella scheda Firewall e reti virtuali selezionare la configurazione per l'opzione Accesso alla rete pubblica:

      1. Se Abilitato da reti virtuali e indirizzi IP selezionati è selezionato, verificare che l'elenco degli indirizzi IP consentiti mostri le reti virtuali del lab che possono essere usate per creare macchine virtuali del lab:

        Screenshot che mostra la selezione di

      2. In caso contrario, verificare che Abilitato da tutte le reti sia selezionato:

        Screenshot che mostra la selezione

Per informazioni dettagliate sulla risoluzione dei problemi, vedere Configurare firewall e reti virtuali di Archiviazione di Azure.

Risolvere i problemi nel computer lab

È possibile connettersi alla macchina virtuale del lab in cui l'artefatto non è riuscito ed esaminare il problema.

Esaminare il file di log dell'estensione per script personalizzati

Per visualizzare il file di log dell'estensione per script personalizzati per una macchina virtuale Windows, seguire questa procedura:

  1. Connettersi alla macchina virtuale del lab DevTest Labs in esecuzione.

  2. Aprire una finestra di Esplora file e passare a C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<versione CSE>\Status\. Un esempio <versione CSE> è 1.10.12.

    Screenshot che mostra il contenuto della cartella Status in una macchina virtuale Windows per DevTest Labs.

  3. Aprire ed esaminare un file STATUS per visualizzare l'errore, ad esempio 1.status.

Per istruzioni su come trovare i file di log in una macchina virtuale Linux, vedere Usare l'estensione per script personalizzati di Azure versione 2 con macchine virtuali Linux.

Controllare l'agente di macchine virtuali di Azure

Verificare che l'agente di macchine virtuali di Azure (agente di macchine virtuali) per la macchina virtuale del lab sia installato e pronto.

Quando la macchina virtuale del lab viene avviata per la prima volta o quando l'ambiente del servizio certificati è installato per gestire la richiesta di applicazione degli artefatti, potrebbe essere necessario aggiornare l'agente di macchine virtuali o attendere l'inizializzazione dello stesso. L'agente di macchine virtuali potrebbe dipendere da servizi che richiedono molto tempo per l'inizializzazione.

Determinare se l'agente di macchine virtuali causa l'arresto dell'artefatto seguendo questa procedura:

  1. Connettersi alla macchina virtuale del lab DevTest Labs in esecuzione.

  2. Aprire una finestra di Esplora file e passare alla cartella contenente i file di log per la macchina virtuale del lab, ad esempio C:\WindowsAzure\logs.

  3. Aprire il file WaAppAgent.log.

  4. Nel file di log cercare le voci che mostrano l'avvio dell'agente di macchine virtuali, il completamento dell'inizializzazione e l'invio del primo heartbeat. Analizzare le voci per individuare i timestamp nel momento in cui si è verificato il problema dell'artefatto. Il frammento di codice seguente mostra alcune voci di esempio del file di log:

    [00000006] [11/14/2019 05:52:13.44] [INFO]  WindowsAzureGuestAgent starting. Version 2.7.41491.949
    ...
    [00000006] [11/14/2019 05:52:31.77] [WARN]  Waiting for OOBE to Complete ...
    ...
    [00000006] [11/14/2019 06:02:30.43] [WARN]  Waiting for OOBE to Complete ...
    [00000006] [11/14/2019 06:02:33.43] [INFO]  StateExecutor initialization completed.
    [00000020] [11/14/2019 06:02:33.43] [HEART] WindowsAzureGuestAgent Heartbeat.
    

    In questo esempio l'avvio dell'agente di macchine virtuali ha richiesto 10 minuti e 20 secondi. Il ritardo è dovuto al fatto che l'avvio del servizio configurazione guidata ha richiesto molto tempo. Il tempo di avvio prolungato per l'agente di macchine virtuali ha causato l'arresto dell'artefatto.

Per informazioni generali sulle estensioni di Azure, vedere Estensioni e funzionalità delle macchine virtuali di Azure. Per altre idee sulla risoluzione dei problemi, vedere Panoramica dell'agente di macchine virtuali di Azure.

Esaminare i problemi relativi agli script

Un altro motivo per cui l'installazione dell'artefatto potrebbe non riuscire è dovuta alla creazione dello script di installazione dell'artefatto.

Ecco alcuni esempi di potenziali problemi di script:

  • Lo script ha parametri obbligatori, ma un valore previsto non viene passato durante l'esecuzione dello script. Questo scenario può verificarsi se l'utente può lasciare vuoto un parametro previsto e non è specificato alcun valore predefinito nel file di definizione artifactfile.json. Di conseguenza, lo script smette di rispondere perché è in attesa dell'input dell'utente. Quando lo script richiede valori di parametro, è consigliabile definire le impostazioni predefinite e richiedere all'utente di immettere un valore.

  • Lo script richiede un'azione dell'utente durante l'esecuzione. Questo scenario può verificarsi se si verifica un lungo ritardo nell'esecuzione dello script durante l'attesa dell'azione da parte dell'utente. È consigliabile creare script che possano funzionare in modo invisibile all'utente senza richiedere l'intervento dell'utente.

Determinare se lo script causa l'arresto dell'artefatto seguendo questa procedura:

  1. Connettersi alla macchina virtuale del lab DevTest Labs in esecuzione.

  2. Aprire una finestra di Esplora file.

  3. Passare alla cartella Download con lo script di installazione dell'artefatto per la macchina virtuale, ad esempio C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<versione CSE>\Downloads\. Un esempio <versione CSE> è 1.10.12.

    Per i passaggi successivi, è possibile usare lo script in questa cartella o copiare lo script in una cartella di lavoro nella macchina virtuale.

  4. Aprire una finestra del prompt dei comandi con privilegi amministrativi nella macchina virtuale.

  5. Eseguire lo script di installazione dell'artefatto nella finestra del prompt dei comandi.

    Seguire le istruzioni dello script e immettere i valori dei parametri richiesti. Per verificare se la mancanza di input o l'azione ritardata dell'utente causa un problema, provare a riprodurre il comportamento specifico.

  6. Determinare se lo script dimostra un comportamento imprevisto o problematico.

  7. Se necessario, correggere lo script nella macchina virtuale del lab ed eseguire di nuovo lo script per verificare che i problemi vengano risolti.

Controllare la struttura degli artefatti

Un artefatto personalizzato deve avere la struttura corretta. Assicurarsi di verificare che gli artefatti personalizzati nello script di installazione dell'artefatto implementino la struttura corretta. Le risorse seguenti forniscono informazioni utili per completare questa verifica:

Richiedere l'aggiornamento dello script

È possibile inviare correzioni di script proposte per gli artefatti ospitati nel repository pubblico di DevTest Labs. Per informazioni dettagliate, vedere la sezione Contributi nel documento README.

Ottenere supporto

Per altre informazioni, provare uno dei canali di supporto seguenti:

  • Consultare le risorse del sito Web della community Microsoft per informazioni su Azure DevTest Labs e accedere ai post in Stack Overflow.

  • Connettersi con @AzureSupport, l'account ufficiale Microsoft Azure per migliorare l'esperienza del cliente. Il supporto di Azure mette in contatto la community di Azure con le risorse giuste: risposte, supporto ed esperti.