Solucionar problemas de artefatos em máquinas virtuais de laboratório no Azure DevTest Labs
Este artigo orienta você pelas possíveis causas e etapas de solução de problemas para falhas de artefato em seus recursos de máquina virtual (VM) do Azure DevTest Labs.
Artefatos são ferramentas, ações ou software que você pode instalar em VMs de laboratório durante ou após a criação da VM. Os proprietários de laboratório podem pré-selecionar artefatos obrigatórios para aplicar a todas as VMs de laboratório na criação, e os usuários de laboratório podem aplicar artefatos a VMs de sua propriedade. Vários problemas possíveis podem fazer com que os artefatos não sejam instalados e aplicados a um laboratório ou executados corretamente em uma VM de laboratório.
Quando um artefato parece parar de responder, o primeiro passo é tentar determinar por que o processo está preso. A instalação do artefato pode ser bloqueada durante a solicitação inicial ou falhar durante a execução da solicitação. Você pode solucionar problemas de falhas de artefato no portal do Azure ou na VM onde ocorre a falha de artefato.
Resolução de problemas no portal do Azure
Se um artefato não estiver sendo aplicado com êxito à sua VM de laboratório, você poderá começar investigando o status da sua VM no portal do Azure. Você pode encontrar informações sobre o estado da VM, confirmar que ela está em execução e verificar se os artefatos podem ser aplicados. Os dados do log de atividades para a VM de laboratório mostram entradas sobre processos de instalação. Você pode verificar as entradas para encontrar informações sobre falhas de artefatos.
Verificar o status da VM
Verifique o estado da VM no portal do Azure seguindo estas etapas:
Navegue até a página Visão geral da VM de laboratório do DevTest Labs e confirme se a máquina está em execução:
Selecione Artefatos e abra a lista de artefatos para a VM de laboratório:
Marque a opção Aplicar artefatos e confirme se a VM de laboratório está pronta para aceitar artefatos aplicados:
Quando a opção Aplicar artefatos estiver acinzentada, você não poderá aplicar artefatos à VM de laboratório e verá uma mensagem de notificação na página:
Utilizar o comando do PowerShell
Você também pode usar o Azure PowerShell para verificar se sua VM de laboratório pode receber artefatos aplicados.
O comando a seguir GET
retorna o canApplyArtifacts
sinalizador com um valor de True ou False. Para executar o comando, substitua o parâmetro pelo nome do laboratório e pelo nome da $LabName/$VmName
VM e especifique o grupo de recursos do $LabRgName
laboratório no parâmetro.
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 detalhes de artefatos com falha
Um artefato pode parar de responder e, eventualmente, mostrar como Falha na lista de artefatos para a VM de laboratório.
Investigue artefatos com falha seguindo estas etapas:
Navegue até a página de listagem Artefatos da VM de laboratório e selecione o artefato com o status Falha :
A visualização Detalhes do artefato é aberta. Os detalhes incluem as informações da Mensagem de Implantação e da Mensagem de Extensão sobre a falha do artefato:
Inspecionar registros de atividades
Para instalar artefatos, o DevTest Labs cria e implanta um modelo do Azure Resource Manager (ARM) que solicita o uso da CSE (Custom Script Extension). Um erro nesse nível aparece nos logs de atividade da assinatura e do grupo de recursos que contém a VM de laboratório.
Nota
Ao visualizar os logs de atividades, talvez seja necessário expandir as entradas do processo de instalação para ver os resumos de erros de falha.
Inspecione as entradas do log de atividades em busca de falhas relacionadas à instalação ou aplicação do artefato na VM de laboratório com estas etapas:
Navegue até a página Registro de atividades da VM de laboratório e localize o artefato com o status Falha :
Selecione a entrada para abrir o painel de detalhes e exibir as informações de log:
Se você estiver tentando aplicar o artefato diretamente à sua VM de laboratório, procure erros de falha relacionados ao processo de instalação Criar ou Atualizar Extensão de Máquina Virtual .
Se você estiver criando uma VM e aplicando o artefato durante o processo, procure erros de falha relatados para o processo de instalação Criar ou Atualizar Máquina Virtual.
O título do painel corresponde ao título da entrada, como Aplicar artefatos à máquina virtual:
No painel de detalhes, selecione JSON para revisar o conteúdo da carga JSON útil. Você pode ver o erro no final do documento JSON:
Investigue o repositório de artefatos e a conta de armazenamento de laboratório
Quando o DevTest Labs aplica um artefato, ele lê a configuração do artefato e os arquivos dos repositórios conectados. Se um artefato falhar ao instalar ou aplicar à sua VM de laboratório, o problema pode estar relacionado ao acesso ao repositório.
Por padrão, o DevTest Labs tem acesso ao repositório público de artefatos do DevTest Labs. Você também pode conectar um laboratório a um repositório privado para acessar artefatos personalizados. Dependendo da configuração, as VMs de laboratório podem não ter acesso direto ao repositório de artefatos. O DevTest Labs armazena em cache os artefatos em uma conta de armazenamento de laboratório criada quando o laboratório é inicializado pela primeira vez.
Se um artefato personalizado falhar na instalação, verifique se o token de acesso pessoal (PAT) do repositório privado não expirou. Se a PAT tiver expirado, o artefato não será listado e todos os scripts que se referem a artefatos desse repositório falharão.
Se o acesso à conta de armazenamento estiver bloqueado, poderá ver um erro semelhante a este exemplo:
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.
Um cenário em que você pode encontrar esse erro é quando o tráfego é bloqueado da VM para o serviço de Armazenamento do Azure. O erro aparece no log de atividades do grupo de recursos para a VM de laboratório.
Identifique problemas de conexão do repositório com a conta de Armazenamento do Azure com estas etapas:
Verifique se há grupos de segurança de rede (NSGs) adicionados. Se uma política de assinatura for adicionada para configurar automaticamente NSGs em todas as redes virtuais, ela poderá afetar a rede virtual usada para criar suas VMs de laboratório.
Verifique todas as regras do NSG:
Use a verificação de fluxo IP para determinar se uma regra NSG está bloqueando o tráfego de ou para uma VM.
Revise as regras efetivas do grupo de segurança para garantir a existência de uma regra de entrada Permitir NSG. Para obter mais informações, consulte Usando regras de segurança eficazes para solucionar problemas de fluxo de tráfego de VM.
Verifique a conta de armazenamento padrão do seu laboratório.
A conta de armazenamento padrão é a primeira conta de armazenamento criada durante a criação do laboratório. O nome geralmente começa com a letra "a" e termina com um número de vários dígitos, como
a<labname>#
.Navegue até a página Visão geral da VM de laboratório do DevTest Labs e selecione Visualizador de recursos.
No diagrama, localize a conta de armazenamento que tem um nome que corresponde à convenção de nomenclatura descrita,
a<labname>#
.Selecione o recurso Conta de armazenamento para ver o menu pop-up e, em seguida, selecione Exibir:
Na página Visão geral da conta de armazenamento, expanda a seção Segurança + rede no menu à esquerda e selecione Rede:
Na guia Firewalls e redes virtuais, verifique a configuração para a opção Acesso à rede pública:
Se a opção Ativado a partir de redes virtuais e endereços IP selecionados estiver selecionada, confirme se a lista de endereços IP permitidos mostra as redes virtuais do laboratório que podem ser usadas para criar VMs de laboratório:
Caso contrário, confirme se Ativado de todas as redes está selecionado:
Para obter uma solução de problemas detalhada, consulte Configurar firewalls de armazenamento do Azure e redes virtuais.
Solução de problemas na máquina do laboratório
Você pode se conectar à VM de laboratório onde o artefato falhou e investigar o problema.
Inspecione o arquivo de log da Extensão de Script Personalizado
Exiba o arquivo de log CSE (Custom Script Extension) para uma VM do Windows seguindo estas etapas:
Conecte-se à sua VM de laboratório do DevTest Labs em execução.
Abra uma janela do Explorador de Arquivos e vá para C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\. Um exemplo de <versão> CSE é
1.10.12
.Abra e inspecione um arquivo STATUS para exibir o erro, como 1.status.
Para obter instruções sobre como localizar os arquivos de log em uma VM Linux , consulte Usar a Extensão de Script Personalizada do Azure Versão 2 com máquinas virtuais Linux.
Verifique o Agente de Máquina Virtual do Azure
Verifique se o Agente de Máquina Virtual do Azure (Agente de VM) para sua VM de laboratório está instalado e pronto.
Quando a VM de laboratório é iniciada pela primeira vez ou quando o CSE é instalado pela primeira vez para atender à solicitação de aplicação de artefatos, a VM de laboratório pode precisar atualizar o Agente de VM ou aguardar a inicialização do Agente de VM. O Agente de VM pode depender de serviços que levam muito tempo para inicializar.
Determine se o Agente de VM está fazendo com que o artefato pare de responder seguindo estas etapas:
Conecte-se à sua VM de laboratório do DevTest Labs em execução.
Abra uma janela do Explorador de Arquivos e vá para a pasta que contém os arquivos de log para sua VM de laboratório, como C:\WindowsAzure\logs.
Abra o arquivo WaAppAgent.log .
No arquivo de log, procure entradas que mostrem o Agente de VM iniciando, concluindo a inicialização e enviando a primeira pulsação. Analise entradas em busca de carimbos de data/hora na época em que você teve o problema do artefato. O trecho a seguir mostra algumas entradas de exemplo do arquivo de 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.
Neste exemplo, o Agente de VM levou 10 minutos e 20 segundos para iniciar. O atraso ocorre porque o serviço out-of-box-experience (OOBE) demorou muito tempo para ser iniciado. O longo tempo de início do Agente de VM fez com que o artefato parasse de responder.
Para obter informações gerais sobre extensões do Azure, consulte Extensões e recursos de máquina virtual do Azure. Para obter mais ideias de solução de problemas, consulte Visão geral do Agente de Máquina Virtual do Azure.
Investigar problemas de script
Outra razão pela qual a instalação do artefato pode falhar é devido à maneira como o script de instalação do artefato é criado.
Aqui estão alguns exemplos de possíveis problemas de script:
O script tem parâmetros obrigatórios, mas um valor esperado não é passado durante a execução do script. Esse cenário pode acontecer se o usuário tiver permissão para deixar um parâmetro esperado em branco e um valor padrão não for especificado no arquivo de definição artifactfile.json . Como resultado, o script para de responder porque está aguardando a entrada do usuário. Quando o script requer valores de parâmetro, é uma boa prática definir padrões e exigir que o usuário insira um valor.
O script requer ação do usuário durante a execução do script. Esse cenário pode acontecer se houver um longo atraso na execução do script enquanto aguarda que o usuário execute uma ação. É uma boa prática criar scripts que possam funcionar silenciosamente sem exigir a intervenção do usuário.
Determine se o script está fazendo com que o artefato pare de responder seguindo estas etapas:
Conecte-se à sua VM de laboratório do DevTest Labs em execução.
Abra uma janela do Explorador de Ficheiros.
Vá para a pasta Download que tem o script de instalação de artefato para sua VM, como C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Um exemplo de <versão> CSE é
1.10.12
.Para as etapas subsequentes, você pode trabalhar com o script nesta pasta ou copiar o script para uma pasta de trabalho em sua VM.
Abra uma janela de Prompt de Comando com privilégios administrativos em sua VM.
Execute o script de instalação do artefato na janela do prompt de comando.
Siga os prompts de script e insira os valores de parâmetro necessários. Para investigar se a falta de entrada do usuário ou a ação atrasada do usuário causa um problema, tente reproduzir o comportamento específico.
Determine se o script demonstra um comportamento inesperado ou problemático.
Conforme necessário, corrija o script em sua VM de laboratório e execute-o novamente para confirmar que os problemas foram resolvidos.
Verificar a estrutura do artefato
Um artefato personalizado precisa ter a estrutura adequada. Certifique-se de confirmar se os artefatos personalizados no script de instalação do artefato implementam a estrutura correta. Os recursos a seguir fornecem informações para ajudá-lo a concluir essa verificação:
- Para obter informações sobre como construir corretamente um artefato, consulte Criar artefatos personalizados.
- Para obter um exemplo de um artefato estruturado corretamente, consulte o artefato Test parameter types .
- Para obter mais informações sobre como escrever e corrigir scripts de artefatos, consulte AUTHORING.
Solicitar atualização de script
Você pode enviar correções de script propostas para artefatos hospedados no repositório público do DevTest Labs. Para obter detalhes, consulte a seção Contribuições no documento LEIA-ME .
Obter suporte
Se precisar de mais ajuda, tente um dos seguintes canais de suporte:
Pesquise os recursos do site da Microsoft Community para obter informações sobre o Azure DevTest Labs e acessar postagens no Stack Overflow.
Conecte-se com @AzureSupport, a conta oficial do Microsoft Azure para melhorar a experiência do cliente. O Suporte do Azure conecta a comunidade do Azure a respostas, suporte e especialistas.