Solución de problemas mediante la aplicación de artefactos en máquinas virtuales de DevTest Labs

Este artículo le guía por las posibles causas y los pasos a seguir para solucionar problemas de errores de artefactos en máquinas virtuales (VM) de Azure DevTest Labs.

Los artefactos son herramientas, acciones o software que puede instalar en VM de laboratorio durante o después de su creación. Los propietarios de laboratorios pueden preseleccionar artefactos obligatorios para aplicarlos a todas las VM de laboratorio durante la creación, mientras que los usuarios de laboratorios pueden aplicar artefactos a las VM que poseen.

Hay varias causas posibles de que los artefactos no se puedan instalar o ejecutar correctamente. Cuando parece que un artefacto deja de responder, lo primero es intentar determinar dónde está el bloqueo. La instalación del artefacto se puede bloquear durante la solicitud inicial o puede producir un error durante la ejecución de la solicitud.

Puede solucionar los errores de artefactos desde Azure Portal o desde la máquina virtual en la que se ha generado un error en el artefacto.

Solución de problemas de errores de artefacto desde Azure Portal

Si no puede aplicar un artefacto a una VM, compruebe primero los siguientes elementos en Azure Portal:

  • Asegúrese de que está ejecutando la máquina virtual.
  • Vaya a la página Artefactos de la máquina virtual de laboratorio para asegurarse de que la VM está lista para aplicar artefactos. Si la función Aplicar artefactos no está disponible, verá un mensaje en la parte superior de la página.

Uso de un comando de PowerShell

También puede usar Azure PowerShell para determinar si la máquina virtual puede aplicar artefactos. Inspeccione la marca canApplyArtifacts, que se devuelve cuando expande en una operación GET. Por ejemplo:

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

Investigación del artefacto con errores

Un artefacto puede dejar de responder y, finalmente, aparecer como Con error. Para investigar artefactos con errores:

  1. En la página Información general del laboratorio, en la lista de Mis máquinas virtuales, seleccione la máquina virtual que tiene el artefacto que quiere investigar.

  2. En la página Información general de la máquina virtual, seleccione Artefactos en el panel de navegación izquierdo. La página Artefactos muestra los artefactos asociados a la máquina virtual y su estado.

    Captura de pantalla que muestra la lista de artefactos y su estado.

  3. Seleccione el artefacto que muestre un estado Con error. El artefacto se abre con un mensaje de extensión que incluye detalles sobre el error del artefacto.

    Captura de pantalla del mensaje de error de un artefacto con errores.

Inspección de registros de actividad

Para instalar artefactos, DevTest Labs crea e implementa una plantilla de Azure Resource Manager (ARM) que solicita el uso de la extensión de script personalizado (CSE). Se muestra un error en este nivel en los registros de actividad de la suscripción y del grupo de recursos de la máquina virtual.

Si un artefacto no se pudo instalar, inspeccione las entradas del Registro de actividad en Crear o actualizar la extensión de la máquina virtual si aplicó el artefacto directamente, o bien Crear o actualizar máquina virtual si el artefacto se estaba aplicando como parte de la creación de la máquina virtual. Busque errores en estas entradas. A veces, tiene que expandir la entrada para ver el error.

Seleccione la entrada con errores para ver los detalles del error. En la página de error, seleccione JSON para revisar el contenido de la carga JSON. Puede ver el error al final del documento JSON.

Investigación del repositorio de artefactos privado y la cuenta de almacenamiento de laboratorio

Cuando DevTest Labs aplica un artefacto, lee la configuración del artefacto y los archivos de los repositorios conectados. De forma predeterminada, DevTest Labs tiene acceso al repositorio de artefactos público de DevTest Labs. También puede conectar un laboratorio a un repositorio privado para acceder a artefactos personalizados. Si no se puede instalar un artefacto personalizado, asegúrese de que el token de acceso personal (PAT) del repositorio privado no ha expirado. Si el PAT ha expirado, el artefacto no aparecerá en la lista y se produce un error en los scripts que hacen referencia a los artefactos de ese repositorio.

En función de la configuración, es posible que las máquinas virtuales de laboratorio no tengan acceso directo al repositorio de artefactos. DevTest Labs almacena en memoria caché los artefactos en una cuenta de almacenamiento de laboratorio que se crea cuando el laboratorio se inicializa por primera vez. Si el acceso a esta cuenta de almacenamiento está bloqueado, como cuando se bloquea el tráfico de la máquina virtual al servicio Azure Storage, es posible que vea un error similar a este:

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.

Este error aparece en el registro de actividad del grupo de recursos de la máquina virtual.

Para solucionar problemas de conectividad con la cuenta de Azure Storage:

  • Busque los grupos de seguridad de red (NSG) agregados. Si se agregó una directiva de suscripción para configurar automáticamente los grupos de seguridad de red en todas las redes virtuales, afectaría a la red virtual usada para crear máquinas virtuales de laboratorio.

  • Compruebe las reglas de NSG. Use Comprobación del flujo de IP para determinar si una regla de NSG está bloqueando el tráfico hacia o desde una máquina virtual. También puede revisar las reglas del grupo de seguridad vigentes para asegurarse de que existe una regla de entrada del grupo de seguridad de red de tipo Permitir. Para más información, consulte Uso de las reglas de seguridad vigentes para solucionar problemas de flujo de tráfico de máquinas virtuales.

  • Compruebe la cuenta de almacenamiento predeterminada del laboratorio. La cuenta de almacenamiento predeterminada es la primera cuenta de almacenamiento creada cuando se creó el laboratorio. Normalmente, el nombre comienza con la letra "a" y termina con un número de varios dígitos, como a<labname>#.

    1. Vaya al grupo de recursos del laboratorio.
    2. Busque el recurso del tipo cuenta de almacenamiento cuyo nombre coincide con la convención.
    3. En la página Información general de la cuenta de almacenamiento, seleccione Redes en el panel de navegación izquierdo.
    4. En la pestaña Firewalls y redes virtuales, asegúrese de que el acceso a la red pública esté establecido en Habilitado desde todas las redes. O bien, si está seleccionada la opción Habilitado desde redes virtuales y direcciones IP seleccionadas, asegúrese de que las redes virtuales del laboratorio usadas para crear las máquinas virtuales se hayan agregado a la lista.

Para una solución de problemas detallada, consulte Configuración de firewalls y redes virtuales de Azure Storage.

Solución de problemas de errores de artefacto desde la máquina virtual de laboratorio

Puede conectarse a la máquina virtual de laboratorio en la que se ha generado un error en el artefacto e investigar el problema.

Inspección del archivo de registro de la extensión de script personalizado

  1. En la máquina virtual de laboratorio, vaya a C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, donde *1.10.12* es el número de versión de CSE.

    Captura de pantalla de la carpeta Status en el laboratorio V M.

  2. Abra e inspeccione el archivo de ESTADO para ver el error.

Para obtener instrucciones sobre cómo buscar los archivos de registro en una máquina virtual Linux, consulte Uso de la extensión de script personalizado de Azure versión 2 con máquinas virtuales Linux.

Comprobación del agente de VM

Asegúrese de que el agente de máquina virtual de Azure (agente de VM) esté instalado y listo.

Cuando la máquina virtual se inicia por primera vez o cuando la CSE se instala por primera vez para atender la solicitud de aplicación de artefactos, es posible que la máquina virtual tenga que actualizar el agente de máquina virtual o esperar a que se inicialice el agente de máquina virtual. El agente de máquina virtual puede depender de servicios que tardan mucho tiempo en inicializarse. Consulte la información general de máquina virtual de Azure para más información de solución de problemas.

Para comprobar si parece que el artefacto deja de responder debido al agente de máquina virtual:

  1. En la máquina virtual de laboratorio, vaya a C:\WindowsAzure\logs.

  2. Abra el archivo WaAppAgent.log.

  3. Busque entradas que muestren el inicio y la finalización de la inicialización del agente de máquina virtual, y el primer latido enviado, en torno a la hora en que experimentó el problema del artefacto.

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

En el ejemplo anterior, el agente de máquina virtual tardó 10 minutos y 20 segundos en iniciarse. La causa era que el servicio OOBE tardaba mucho tiempo en iniciarse.

Para una información general sobre las extensiones de Azure, consulte Características y extensiones de las máquinas virtuales de Azure.

Investigación de problemas de script

La instalación del artefacto podría producir un error debido a la forma en que se crea el script de instalación del artefacto. Por ejemplo:

  • El script tiene parámetros obligatorios, pero ocurre un error al pasar un valor, ya sea porque se permite que el usuario lo deje en blanco o porque no existe un valor predeterminado en el archivo de definición artifactfile.json. El script deja de responder porque está esperando la entrada del usuario.

  • El script requiere una entrada de usuario como parte de la ejecución. Los scripts deberían funcionar de forma silenciosa sin necesidad de intervención del usuario.

Para solucionar problemas de si el script está provocando que el artefacto parezca que ha dejado de responder:

  1. Copie el script en la máquina virtual o localícelo en la máquina virtual en la ubicación de descarga del script de artefacto, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Mediante un símbolo del sistema administrativo, ejecute el script en la máquina virtual y proporcione los mismos valores de parámetro que provocaron el problema.
  3. Determine si el script muestra cualquier comportamiento no deseado. Si es así, solicite una actualización o corrija el script.

Sugerencia

Puede enviar propuestas de corrección de scripts para artefactos hospedados en el repositorio público de DevTest Labs. Para obtener más información, consulte la sección Contribuciones en el documento LÉAME.

Nota

Un artefacto personalizado debe tener la estructura adecuada. Para más información sobre cómo crear correctamente un artefacto, consulte el artículo sobre cómo crear artefactos personalizados. Para ver un ejemplo de artefacto estructurado correctamente, vea el artefacto tipos de parámetros de prueba.

Para obtener más información sobre cómo escribir y corregir scripts de artefactos, vea CREACIÓN.

Pasos siguientes

Si necesita más ayuda, pruebe uno de los siguientes canales de soporte técnico:

  • Póngase en contacto con los expertos de Azure DevTest Labs en los foros de MSDN Azure y Stack Overflow.
  • Obtenga respuestas de expertos de Azure en los foros de Azure.
  • Póngase en contacto con @AzureSupport, la cuenta oficial de Microsoft Azure para mejorar la experiencia del cliente. El Soporte técnico de Azure pone en contacto a la comunidad de Azure con respuestas, soporte técnico y expertos.
  • Vaya al sitio Soporte técnico de Azure y seleccione Enviar un vale de soporte técnico para registrar un incidente de soporte técnico de Azure.