Share via


Solucionar problemas aplicando artefatos em máquinas virtuais do DevTest Labs

Este artigo orienta você pelas possíveis causas e etapas de solução de problemas para falhas de artefato em VMs (máquinas virtuais) do Azure DevTest Labs.

Artefatos são ferramentas, ações ou softwares que você pode instalar nas 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 a serem aplicados em todas as VMs de laboratório na criação, e os usuários do laboratório podem aplicar artefatos às VMs que eles possuem.

Há várias causas possíveis para os artefatos falharem na instalação ou execução correta. Quando um artefato parece parar de responder, primeiro tente determinar o local onde ele está travado. 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 do portal do Azure ou da VM na qual o artefato falhou.

Solucionar falhas de artefato no portal do Azure

Se você não puder aplicar um artefato a uma VM, primeiro verifique os seguintes itens no portal do Azure:

  • Verificar se a VM está em execução.
  • Navegue até a página Artefatos da VM do laboratório para ver se a VM está pronta para aplicação de artefatos. Se o recurso Aplicar artefatos não estiver disponível, uma mensagem será exibida na parte superior da página.

Usar um comando do PowerShell

Você também pode usar o Azure PowerShell para determinar se a VM pode aplicar artefatos. Inspecione o sinalizador canApplyArtifacts, que é retornado quando você expande em uma operação GET. 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 artefato com falha

Um artefato pode parar de responder e, finalmente, aparecer como Falhou. Para investigar artefatos com falha:

  1. Na página Visão geral do laboratório, na lista em Minhas máquinas virtuais, selecione a VM que tem o artefato que você deseja investigar.

  2. Na página Visão geral da VM, selecione Artefatos na navegação à esquerda. A página Artifacts lista os artefatos associados à VM e seu status.

    Captura de tela da lista de artefatos e os respectivos status.

  3. Escolha o artefato que mostra um status de Falha. O artefato é aberto com uma mensagem de extensão que inclui detalhes sobre a falha do artefato.

    Captura de tela da mensagem de erro de um artefato com falha.

Inspecionar os logs de atividade

Para instalar artefatos, o DevTest Labs cria e implanta um modelo do ARM (Azure Resource Manager) que solicita o uso da CSE (extensão de script personalizado). Um erro nesse nível aparece nos Logs de atividade para a assinatura e para o grupo de recursos da VM.

Se um artefato não for instalado, inspecione as entradas do Log de atividades para criar ou atualizar a extensão da máquina virtual, se você aplicou o artefato diretamente, ou Crie ou atualize uma máquina virtual, se o artefato foi aplicado como parte da criação da VM. Procure falhas nessas entradas. Às vezes, você precisa expandir a entrada para ver a falha.

Selecione a entrada com falha para ver os detalhes do erro. Na página da falha, selecione JSON para examinar o conteúdo da carga JSON. Você pode ver o erro no final do documento JSON.

Investigar o repositório de artefatos privado e a conta de armazenamento no laboratório

Ao aplicar um artefato, o DevTest Labs lê a configuração do artefato e os arquivos dos repositórios configurados. Por padrão, o DevTest Labs tem acesso ao repositório de artefatos público do DevTest Labs. Você também pode conectar um laboratório a um repositório privado para acessar artefatos personalizados. Se um artefato personalizado não for instalado, verifique se o PAT (token de acesso pessoal) do repositório privado não expirou. Se o PAT tiver expirado, o artefato não será listado e os scripts que se referirem aos artefatos do repositório falham.

Dependendo da configuração, as VMs do 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 no laboratório que é criada quando o laboratório é inicializado pela primeira vez. Se o acesso a essa conta de armazenamento for bloqueado, como quando o tráfego é bloqueado da VM para o serviço do Armazenamento do Microsoft Azure, você poderá ver um erro semelhante a esse:

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.

Esse erro aparece no Log de atividades do grupo de recursos da VM.

Para solucionar problemas de conectividade com a conta de Armazenamento do Microsoft Azure:

  • Verifique se há NSG (grupos de segurança de rede) adicionados. Se uma política de assinatura foi adicionada para configurar automaticamente os NSGs em todas as redes virtuais, ela afetaria a rede virtual usada para criar VMs de laboratório.

  • Verifique as regras do NSG. Use a verificação de fluxo de IP para determinar se uma regra de NSG está bloqueando o tráfego para ou de uma VM. Você também pode examinar as regras de grupo de segurança efetivas para garantir que uma regra Permitir do NSG exista. Para saber mais, confira Usar regras de segurança efetivas para solucionar problemas de fluxo de tráfego de VM.

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

    1. Navegue até 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 Visão Geral da conta de armazenamento, selecione Rede na barra de navegação à esquerda.
    4. Na guia Firewalls e redes virtuais, verifique se o Acesso à rede pública está definido como Habilitado de todas as redes. Ou, se a opção Habilitado de redes virtuais e endereços IP selecionados estiver selecionada, verifique se as redes virtuais do laboratório usadas para criar VMs estão adicionadas à lista.

Para uma solução de problemas detalhada, veja Configurar redes virtuais e firewalls do Armazenamento do Microsoft Azure.

Solucionar falhas de artefato na VM do laboratório

Você pode se conectar à VM do laboratório em que o artefato falhou e investigar o problema lá.

Inspecionar o arquivo de log Extensão de Script Personalizado

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

    Captura de tela da pasta “Status” na VM do laboratório.

  2. Abra e inspecione o arquivo STATUS para exibir o erro.

Para obter instruções sobre como localizar os arquivos de log em uma VM Linux, consulte: Usar a Extensão de Script Personalizado do Azure versão 2 com máquinas virtuais Linux.

Verificar o agente de VM

Verifique se o Agente de VM (Agente de Máquina Virtual do Azure) está instalado e pronto.

Quando a VM é iniciada pela primeira vez ou quando a CSE é instalada pela primeira vez para atender à solicitação de aplicação de artefatos, a VM poderá 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 serem inicializados. Para soluções de problemas adicionais, confira Visão geral do Agente de Máquina Virtual do Azure.

Para verificar se o artefato parou de responder devido ao Agente de VM:

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

  2. Abra o arquivo WaAppAgent.log.

  3. Procure entradas que mostrem o Agente de VM iniciando, concluindo a inicialização e a primeira pulsação enviada perto da hora em que o problema de artefato foi apresentado.

    [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 de VM levou 10 minutos e 20 segundos para iniciar. A causa foi o serviço OOBE que demorou muito para começar.

Para obter informações gerais sobre extensões do Azure, confira Recursos e extensões de máquina virtual do Azure.

Investigar problemas de script

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

  • O script tem parâmetros obrigatórios, mas falha ao passar um valor, seja por permitir que o usuário o deixe em branco ou porque não há um valor padrão no arquivo de definição artifactfile.json. O script vai parar de responder porque está aguardando a entrada de usuário.

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

Para solucionar problemas se o script estiver fazendo com que o artefato pareça parar de responder:

  1. Copie o script na VM ou localize-o na VM no local de download do script do artefato, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Usando um prompt de comando administrativo, execute o script na VM, fornecendo os mesmos valores de parâmetro que causaram o problema.
  3. Veja se o script demonstra qualquer comportamento indesejado. Nesse caso, solicite uma atualização ou corrija o script.

Dica

Você pode enviar correções de script propostas para artefatos hospedados no repositório público do DevTest Labs. Para obter detalhes, confira a seção Contribuições no documento README.

Observação

Um artefato personalizado precisa ter a estrutura adequada. Para saber mais sobre como construir corretamente um artefato, confira Criar artefatos personalizados. Para ver um exemplo de um artefato corretamente estruturado, verifique o artefato Testar tipos de parâmetro.

Para obter mais informações sobre como grava e corrigir scripts de artefato, consulte CRIAÇÃO.

Próximas etapas

Se precisar de ajuda adicional, tente um dos seguintes canais de suporte: