Solución de problemas de artefactos en máquinas virtuales de laboratorio en Azure 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 los recursos de 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. Varios problemas posibles pueden provocar que los artefactos no se instalen y se apliquen a un laboratorio o se ejecuten correctamente en una máquina virtual de laboratorio.
Cuando un artefacto parece dejar de responder, el primer paso es intentar determinar por qué el proceso está bloqueado. 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 producido el error del artefacto.
Solución de problemas mediante Azure Portal
Si un artefacto no se aplica correctamente a la máquina virtual del laboratorio, puede empezar investigando el estado de la máquina virtual en Azure Portal. Puede encontrar información sobre el estado de la máquina virtual, confirmar que se está ejecutando y comprobar que se pueden aplicar artefactos. Los datos del registro de actividad de la máquina virtual del laboratorio muestran entradas sobre los procesos de instalación. Puede comprobar las entradas para encontrar información sobre los errores de artefacto.
Comprobación del estado de la máquina virtual
Para comprobar el estado de la máquina virtual en Azure Portal, siga estos pasos:
Vaya a la página Información general de la máquina virtual del laboratorio de DevTest Labs y confirme que la máquina está En ejecución:
Seleccione Artefactos y abra la lista de artefactos de la máquina virtual del laboratorio:
Active la opción Aplicar artefactos y confirme que la máquina virtual de laboratorio está lista para aceptar artefactos aplicados:
Cuando la opción Aplicar artefactos está atenuada, no puede aplicar artefactos a la máquina virtual del laboratorio y verá un mensaje de notificación en la página:
Uso del comando de PowerShell
También puede usar Azure PowerShell para comprobar si la máquina virtual del laboratorio puede recibir artefactos aplicados.
El siguiente comando GET
devuelve la marca canApplyArtifacts
con un valor True o False. Para ejecutar el comando, reemplace el parámetro $LabName/$VmName
por el nombre del laboratorio y el nombre de la máquina virtual y especifique el grupo de recursos del laboratorio en el parámetro $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
Investigación de los detalles del artefacto erróneo
Un artefacto puede dejar de responder y, finalmente, mostrarse como Erróneo en la lista de artefactos de la máquina virtual del laboratorio.
Investigue los artefactos con errores siguiendo estos pasos:
Vaya a la página Lista de artefactos de la máquina virtual del laboratorio y seleccione el artefacto con el estado Erróneo:
Se abre la vista de detalles del Artefacto. Los detalles incluyen la información del Mensaje de implementación y del Mensaje de extensión sobre el error del artefacto:
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 que contiene la máquina virtual del laboratorio.
Nota:
Al ver los registros de actividad, es posible que tenga que expandir las entradas del proceso de instalación para ver los resúmenes de errores.
Inspeccione las entradas del registro de actividad para ver si hay errores relacionados con la instalación o la aplicación del artefacto en la máquina virtual del laboratorio con estos pasos:
Vaya a la página Registro de actividad de la máquina virtual del laboratorio y busque el artefacto con el estado Erróneo:
Seleccione la entrada para abrir el panel de detalles y ver la información del registro:
Si intenta aplicar el artefacto directamente a la máquina virtual del laboratorio, busque errores relacionados con el proceso de instalación de Crear o actualizar la extensión de máquina virtual.
Si va a crear una máquina virtual y a aplicar el artefacto durante el proceso, busque errores notificados para el proceso de instalación de Crear o actualizar máquina virtual.
El título del panel corresponde al título de entrada, como Aplicar artefactos a la máquina virtual:
En el panel de detalles, 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 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. Si un artefacto no se puede instalar o aplicar a la máquina virtual del laboratorio, es posible que el problema esté relacionado con el acceso al repositorio.
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. 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 creado cuando el laboratorio se inicializa por primera vez.
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 aparece en la lista y se produce un error en los scripts que hacen referencia a los artefactos de ese repositorio.
Si se bloquea el acceso a la cuenta de almacenamiento, es posible que vea un error similar al de este ejemplo:
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.
Un escenario en el que podría producirse este error es cuando se bloquea el tráfico de la máquina virtual al servicio Azure Storage. El error aparece en el registro de actividad del grupo de recursos de la máquina virtual del laboratorio.
Identifique los problemas de conexión del repositorio a la cuenta de Azure Storage con estos pasos:
Busque los grupos de seguridad de red (NSG) agregados. Si se agrega una directiva de suscripción para configurar automáticamente los grupos de seguridad de red en todas las redes virtuales, puede afectar a la red virtual usada para crear máquinas virtuales del laboratorio.
Compruebe todas las reglas del grupo de seguridad de red:
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.
Revise 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 durante la creación del laboratorio. Normalmente, el nombre comienza con la letra "a" y termina con un número de varios dígitos, como
a<labname>#
.Vaya a la página Información general de la máquina virtual del laboratorio de DevTest Labs y seleccione Visualizador de recursos.
En el diagrama, busque la Cuenta de almacenamiento que tenga un nombre que coincida con la convención de nomenclatura descrita:
a<labname>#
.Seleccione el recurso Cuenta de almacenamiento para ver el menú emergente y, a continuación, seleccione Ver:
En la página Información general de la cuenta de almacenamiento, expanda la sección Seguridad y redes del menú izquierdo y seleccione Redes:
En la pestaña Firewalls y redes virtuales, compruebe la configuración de la opción Acceso a la red pública:
Si se selecciona Habilitado desde redes virtuales y direcciones IP seleccionadas, confirme que la lista de direcciones IP permitidas muestra las redes virtuales del laboratorio que se pueden usar para crear máquinas virtuales de laboratorio:
De lo contrario, confirme que Habilitado en todas las redes está seleccionado:
Para una solución de problemas detallada, consulte Configuración de firewalls y redes virtuales de Azure Storage.
Solución de problemas en la máquina de laboratorio
Puede conectarse a la máquina virtual del laboratorio donde se produjo un error en el artefacto e investigar el problema.
Inspección del archivo de registro de extensión de script personalizado
Para ver el archivo de registro de la extensión de script personalizado (CSE) para una máquina virtual Windows, siga estos pasos:
Conéctese a la máquina virtual de laboratorio de DevTest Labs en ejecución.
Abra una ventana del Explorador de archivos y vaya a C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. Un ejemplo de la <versión de CSE> es
1.10.12
.Abra e inspeccione un archivo STATUS para ver el error, como 1.status.
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 máquina virtual de Azure
Asegúrese de que el agente de máquina virtual (agente de VM) de Azure para la máquina virtual del laboratorio está instalado y listo.
Cuando la máquina virtual del laboratorio 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 del laboratorio 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.
Determine si el agente de máquina virtual está causando que el artefacto deje de responder siguiendo estos pasos:
Conéctese a la máquina virtual de laboratorio de DevTest Labs en ejecución.
Abra una ventana del Explorador de archivos y vaya a la carpeta que contiene los archivos de registro de la máquina virtual del laboratorio, como C:\WindowsAzure\logs.
Abra el archivo WaAppAgent.log.
En el archivo de registro, busque las entradas que muestran el agente de máquina virtual comenzando, finalizando la inicialización y enviando el primer latido. Examine las entradas de las marcas de tiempo en torno al momento en que experimentó el problema del artefacto. En el fragmento de código siguiente se muestran algunas entradas de ejemplo del archivo de registro:
[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 este ejemplo, el agente de máquina virtual tardó 10 minutos y 20 segundos en iniciarse. El retraso se debe a que el servicio de experiencia rápida (OOBE) tardó mucho tiempo en iniciarse. La hora de inicio larga del agente de máquina virtual hizo que el artefacto dejara de responder.
Para una información general sobre las extensiones de Azure, consulte Características y extensiones de las máquinas virtuales de Azure. Para obtener más ideas de solución de problemas, consulte Introducción al agente de máquina virtual de Azure.
Investigación de problemas de script
Otro motivo por el que se puede producir un error en la instalación del artefacto se debe a la forma en que se crea el script de instalación.
Estos son algunos ejemplos de posibles problemas de script:
El script tiene parámetros obligatorios, pero no se pasa un valor esperado durante la ejecución. Este escenario puede ocurrir si el usuario puede dejar un parámetro esperado en blanco y no se especifica un valor predeterminado en el archivo de definición artifactfile.json. Como resultado, el script deja de responder porque está esperando la entrada del usuario. Cuando el script requiere valores de parámetro, se recomienda definir los valores predeterminados y requerir que el usuario escriba un valor.
El script requiere la acción del usuario durante la ejecución. Este escenario puede ocurrir si hay un retraso largo en la ejecución del script mientras espera a que el usuario realice una acción. Se recomienda crear scripts que funcionen de forma silenciosa sin necesidad de intervención del usuario.
Determine si el script está causando que el artefacto deje de responder siguiendo estos pasos:
Conéctese a la máquina virtual de laboratorio de DevTest Labs en ejecución.
Abra una ventana del Explorador de archivos.
Vaya a la carpeta Descarga que tiene el script de instalación de artefactos para la máquina virtual, como C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Un ejemplo de la <versión de CSE> es
1.10.12
.Para los siguientes pasos, puede trabajar con el script de esta carpeta o copiarlo en una carpeta de trabajo de la máquina virtual.
Abra una ventana del símbolo del sistema con privilegios administrativos en la máquina virtual.
Ejecute el script de instalación del artefacto en la ventana del símbolo del sistema.
Siga las indicaciones del script y escriba los valores de parámetro necesarios. Para investigar si la falta de entrada del usuario o la acción de usuario retrasada provoca un problema, intente reproducir el comportamiento específico.
Determine si el script muestra un comportamiento inesperado o problemático.
Según sea necesario, corrija el script en la máquina virtual del laboratorio y vuelva a ejecutarlo para confirmar que se han resuelto los problemas.
Comprobación de la estructura de artefactos
Un artefacto personalizado debe tener la estructura adecuada. Asegúrese de confirmar que los artefactos personalizados en el script de instalación del artefacto implementan la estructura correcta. Los siguientes recursos proporcionan información para ayudarle a completar esta comprobación:
- 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.
Solicitud de actualización de script
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.
Obtener soporte técnico
Si necesita más ayuda, pruebe uno de los siguientes canales de soporte técnico:
Busque en los recursos del sitio web de Microsoft Community para obtener información sobre Azure DevTest Labs y acceda a las publicaciones en Stack Overflow.
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.