Resolver problemas de aplicação de artefactos em máquinas virtuais do DevTest Labs

Este artigo orienta-o através de possíveis causas e passos de resolução de problemas para falhas de artefactos em máquinas virtuais (VMs) Azure DevTest Labs.

Os artefactos são ferramentas, ações ou software que pode instalar em VMs de laboratório durante ou após a criação da VM. Os proprietários de laboratórios podem pré-selecionar artefactos obrigatórios para serem aplicados a todas as VMs de laboratório durante a criação e os utilizadores de laboratório podem aplicar artefactos a VMs que possuam .

Existem várias causas possíveis para os artefactos não serem instalados ou executados corretamente. Quando um artefacto parece parar de responder, primeiro tente determinar onde está bloqueado. A instalação de artefactos pode ser bloqueada durante o pedido inicial ou falhar durante a execução do pedido.

Pode resolver falhas de artefactos do portal do Azure ou da VM onde o artefacto falhou.

Resolver problemas de falhas de artefactos do portal do Azure

Se não conseguir aplicar um artefacto a uma VM, verifique primeiro os seguintes itens no portal do Azure:

  • Certifique-se de que a VM está em execução.
  • Navegue para a página Artefactos da VM de laboratório para se certificar de que a VM está pronta para aplicar artefactos. Se a funcionalidade Aplicar artefactos não estiver disponível, verá uma mensagem na parte superior da página.

Utilizar um comando do PowerShell

Também pode utilizar Azure PowerShell para determinar se a VM pode aplicar artefactos. Inspecione o sinalizador canApplyArtifacts, que é devolvido quando expande numa GET operação. Por exemplo:

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

Investigar o artefacto com falha

Um artefacto pode parar de responder e, por fim, aparecer como Falha. Para investigar artefactos com falhas:

  1. Na página Descrição Geral do laboratório, na lista em As minhas máquinas virtuais, selecione a VM que tem o artefacto que pretende investigar.

  2. Na página Descrição Geral da VM, selecione Artefactos no painel de navegação esquerdo. A página Artefactos lista os artefactos associados à VM e o respetivo estado.

    Captura de ecrã a mostrar a lista de artefactos e o respetivo estado.

  3. Selecione o artefacto que mostra o estado Falha . O artefacto é aberto com uma mensagem de extensão que inclui detalhes sobre a falha do artefacto.

    Captura de ecrã da mensagem de erro de um artefacto com falhas.

Inspecionar os Registos de atividades

Para instalar artefactos, o DevTest Labs cria e implementa um modelo do Azure Resource Manager (ARM) que pede a utilização da Extensão de Script Personalizado (CSE). É apresentado um erro neste nível nos Registos de atividades da subscrição e no grupo de recursos da VM.

Se não tiver sido possível instalar um artefacto, inspecione as entradas do Registo de atividades para Criar ou Atualizar Extensão de Máquina Virtual, se tiver aplicado o artefacto diretamente, ou Criar ou Atualizar Máquina Virtual, se o artefacto estava a ser aplicado como parte da criação da VM. Procure falhas nestas entradas. Por vezes, tem de expandir a entrada para ver a falha.

Selecione a entrada com falha para ver os detalhes do erro. Na página de falha, selecione JSON para rever o conteúdo do payload JSON. Pode ver o erro no final do documento JSON.

Investigar o repositório de artefactos privados e a conta de armazenamento de laboratório

Quando o DevTest Labs aplica um artefacto, lê a configuração do artefacto e os ficheiros de repositórios ligados. Por predefinição, o DevTest Labs tem acesso ao repositório de Artefactos públicos do DevTest Labs. Também pode ligar um laboratório a um repositório privado para aceder a artefactos personalizados. Se um artefacto personalizado não conseguir instalar, certifique-se de que o token de acesso pessoal (PAT) do repositório privado não expirou. Se o PAT expirar, o artefacto não será listado e quaisquer scripts que se refiram a artefactos desse repositório falham.

Dependendo da configuração, as VMs de laboratório podem não ter acesso direto ao repositório de artefactos. O DevTest Labs coloca os artefactos em cache numa conta de armazenamento de laboratório criada quando o laboratório é inicializa pela primeira vez. Se o acesso a esta conta de armazenamento estiver bloqueado, como quando o tráfego é bloqueado da VM para o serviço de Armazenamento do Azure, poderá ver um erro semelhante ao seguinte:

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 erro aparece no Registo de atividades do grupo de recursos da VM.

Para resolver problemas de conectividade à conta de Armazenamento do Azure:

  • Verifique se existem grupos de segurança de rede adicionados (NSGs). Se uma política de subscrição tiver sido adicionada para configurar automaticamente NSGs em todas as redes virtuais, afetará a rede virtual utilizada para criar VMs de laboratório.

  • Verifique as regras do NSG. Utilize a verificação do fluxo de IP para determinar se uma regra NSG está a bloquear o tráfego de ou para uma VM. Também pode rever regras de grupo de segurança efetivas para garantir que existe uma regra de NSG permitir entrada. Para obter mais informações, veja Utilizar regras de segurança eficazes para resolver problemas de fluxo de tráfego da VM.

  • Verifique a conta de armazenamento predefinida do laboratório. A conta de armazenamento predefinida é a primeira conta de armazenamento criada quando o laboratório foi criado. Normalmente, o nome começa com a letra "a" e termina com um número de vários dígitos, como um<nome de> laboratório#.

    1. Navegue para o grupo de recursos do laboratório.
    2. Localize o recurso do tipo Conta de armazenamento cujo nome corresponde à convenção.
    3. Na página Descrição Geral da conta de armazenamento, selecione Rede no painel de navegação esquerdo.
    4. No separador Firewalls e redes virtuais , certifique-se de que o acesso à rede pública está definido como Ativado a partir de todas as redes. Em alternativa, se a opção Ativado a partir de redes virtuais e endereços IP selecionados estiver selecionada, certifique-se de que as redes virtuais do laboratório utilizadas para criar VMs são adicionadas à lista.

Para obter uma resolução de problemas aprofundada, veja Configurar firewalls e redes virtuais do Armazenamento do Azure.

Resolver problemas de falhas de artefactos da VM de laboratório

Pode ligar-se à VM de laboratório onde o artefacto falhou e investigar o problema.

Inspecionar o ficheiro de registo da Extensão de Script Personalizado

  1. Na VM de laboratório, aceda a C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, em que *1.10.12* é o número da versão CSE.

    Captura de ecrã a mostrar a pasta Estado no laboratório V M.

  2. Abra e inspecione o ficheiro STATUS para ver o erro.

Para obter instruções sobre como localizar os ficheiros de registo numa VM do Linux , consulte Utilizar a Extensão de Script Personalizado do Azure Versão 2 com máquinas virtuais do Linux.

Verificar o Agente da VM

Certifique-se de que o Agente da Máquina Virtual (Agente de VM) do Azure está instalado e pronto.

Quando a VM é iniciada pela primeira vez ou quando o CSE é instalado pela primeira vez para servir o pedido para aplicar artefactos, a VM poderá ter de atualizar o Agente da VM ou aguardar que o Agente da VM seja inicializado. O Agente da VM pode depender de serviços que demoram muito tempo a inicializar. Para obter mais problemas, veja Descrição geral do Agente da Máquina Virtual do Azure.

Para verificar se o artefacto parecia ter parado de responder devido ao Agente da VM:

  1. Na VM do laboratório, navegue para C:\WindowsAzure\logs.

  2. Abra o ficheiro WaAppAgent.log.

  3. Procure entradas que mostrem o Agente da VM a iniciar, a concluir a inicialização e o primeiro heartbeat enviado, por volta do momento em que ocorreu o problema do 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.
    

No exemplo anterior, o Agente da VM demorou 10 minutos e 20 segundos a iniciar. A causa foi o serviço OOBE ter demorado muito tempo a iniciar.

Para obter informações gerais sobre as extensões do Azure, veja Extensões e funcionalidades de máquinas virtuais do Azure.

Investigar problemas de script

A instalação do artefacto pode falhar devido à forma como o script de instalação do artefacto é criado. Por exemplo:

  • O script tem parâmetros obrigatórios, mas não consegue transmitir um valor ao permitir que o utilizador o deixe em branco ou porque não existe nenhum valor predefinido no ficheiro de definição artifactfile.json . O script deixa de responder porque aguarda a entrada do utilizador.

  • O script requer a entrada do utilizador como parte da execução. Os scripts devem funcionar silenciosamente sem necessidade de intervenção do utilizador.

Para resolver se o script está a fazer com que o artefacto apareça, deixe de responder:

  1. Copie o script para a VM ou localize-o na VM na localização de transferência do script de artefacto, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Com uma linha de comandos administrativa, execute o script na VM, fornecendo os mesmos valores de parâmetro que causaram o problema.
  3. Determine se o script mostra algum comportamento indesejado. Em caso afirmativo, peça uma atualização ou corrija o script.

Dica

Pode submeter correções de script propostas para artefactos alojados no repositório público de DevTest Labs. Para obter detalhes, veja a secção Contribuições no documento README .

Nota

Um artefacto personalizado tem de ter a estrutura adequada. Para obter informações sobre como construir corretamente um artefacto, consulte Criar artefactos personalizados. Para obter um exemplo de um artefacto devidamente estruturado, veja o artefacto Tipos de parâmetros de teste .

Para obter mais informações sobre como escrever e corrigir scripts de artefactos, veja CRIAÇÃO.

Passos seguintes

Se precisar de mais ajuda, experimente um dos seguintes canais de suporte:

  • Contacte os especialistas Azure DevTest Labs nos fóruns do MSDN Azure e do Stack Overflow.
  • Obtenha respostas de especialistas do Azure através dos Fóruns do Azure.
  • Ligue-se ao @AzureSupport, a conta oficial do Microsoft Azure para melhorar a experiência do cliente. O Suporte do Azure liga a comunidade do Azure a respostas, suporte e especialistas.
  • Aceda ao site suporte do Azure e selecione Submeter um pedido de suporte para registar um incidente de suporte do Azure.