Repare uma VM do Linux usando os comandos de reparo da Máquina Virtual do Azure

Se sua máquina virtual Linux (VM) no Azure encontrar um erro de inicialização ou disco, talvez seja necessário executar a mitigação no próprio disco. Um exemplo comum seria uma atualização de aplicativo com falha que impede que a VM seja inicializada com êxito. Este artigo detalha como usar os comandos de reparo da Máquina Virtual do Azure para conectar o disco a outra VM do Linux para corrigir quaisquer erros e, em seguida, recriar sua VM original.

Importante

  • Os scripts neste artigo se aplicam apenas às VMs que usam Azure Resource Manager.
  • A conectividade de saída da VM (porta 443) é necessária para a execução do script.
  • Apenas um script pode ser executado por vez.
  • Um script em execução não pode ser cancelado.
  • O tempo máximo que um script pode ser executado é de 90 minutos, após o qual ele expirará.
  • Não modifique as tags criadas na VM de reparo. As tags são necessárias para que o comando de restauração funcione corretamente.
  • Para VMs usando Azure Disk Encryption, há suporte apenas para discos gerenciados criptografados com criptografia de passagem única (com ou sem KEK).

Visão geral do processo de reparo

Agora você pode usar os comandos de reparo da Máquina Virtual do Azure para alterar o disco do SO para uma VM e não precisa mais excluir e recriar a VM.

Siga estas etapas para solucionar o problema da VM:

  1. Iniciar Azure Cloud Shell
  2. Execute a adição/atualização da extensão az
  3. Execute az vm repair create
  4. Execute az vm repair run ou execute as etapas de mitigação.
  5. Execute az vm repair restore

Para visualizar todos os comandos e parâmetros de reparação de VM disponíveis, consulte az vm repair.

Para executar os comandos, você precisa de uma função que possa criar os seguintes tipos de recursos na assinatura:

  • Grupos de recursos
  • Máquinas Virtuais
  • Marcas de recursos
  • Redes Virtuais
  • Grupos de segurança de rede
  • Interfaces de rede
  • Discos
  • Endereços IP públicos (opcional)

Exemplo de processo de reparo

  1. Iniciar Azure Cloud Shell

    O Azure Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Ele inclui ferramentas comuns do Azure pré-instaladas e configuradas para uso com sua conta. Se você executar um script de reparo que levará mais de 20 minutos, talvez prefira executar os comandos localmente. Para executar os comandos localmente, é necessária a versão 2.0.67 ou posterior da CLI do Azure. Execute az --version para encontrar a versão. Se você precisar instalar ou atualizar sua CLI do Azure, consulte Instalar a CLI do Azure.

    Para abrir o Cloud Shell, selecione Experimentar no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do navegador acessando https://shell.azure.com.

    Selecione Copiar para copiar os blocos de código, cole o código no Cloud Shell e selecione Enter para executá-lo.

    Se você preferir instalar e usar a CLI localmente, este início rápido requer a CLI do Azure versão 2.0.67 ou posterior. Execute az --version para encontrar a versão. Se você precisar instalar ou atualizar sua CLI do Azure, consulte Instalar a CLI do Azure.

    Se você precisar fazer login no Cloud Shell com uma conta diferente da que está conectada no portal do Azure, use az loginaz login reference. Para alternar entre assinaturas associadas à sua conta, você pode usar az account set --subscriptionaz account set reference.

  2. Se esta for a primeira vez que você usa os comandos az vm repair, adicione a extensão CLI vm-repair.

    az extension add -n vm-repair
    

    Se você já usou os comandos az vm repair, aplique todas as atualizações à extensão vm-repair.

    az extension update -n vm-repair
    
  3. Execute az vm repair create. Este comando criará uma cópia do disco do sistema operacional para a VM não funcional, criará uma VM de reparo em um novo grupo de recursos e anexará a cópia do disco do sistema operacional. A VM de reparo terá o mesmo tamanho e região que a VM não funcional especificada. O grupo de recursos e o nome da VM usados em todas as etapas serão para a VM não funcional. Se sua VM estiver usando Azure Disk Encryption, use --unlock-encrypted-vm para desbloquear o disco criptografado para que fique acessível quando anexado à VM de reparo. Para obter mais informações, consulte confirme se o ADE está ativado no disco.

Importante

Os comandos executar e restaurar exigirão que todas as entradas sejam inseridas usando o mesmo caso usado no comando criar, anote ou consulte as tags na VM de reparo para ver o que foi usado.

Exemplo de reparação de VM

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password password1234 --verbose
  1. Execute az vm repair run. Este comando executará o script de reparo especificado no disco anexado por meio da VM de reparo. Se o guia de solução de problemas que você está usando especificou um run-id, use-o aqui. Caso contrário, use az vm repair list-scripts para ver os scripts de reparo disponíveis. O grupo de recursos e o nome da VM usados aqui são para a VM não funcional usada na etapa 3. Informações adicionais sobre os scripts de reparo podem ser encontradas na biblioteca de scripts de reparo.

    az vm repair run -g MyResourceGroup -n MyVM --run-on-repair --run-id lin-hello-world --verbose
    

    Opcionalmente, você pode executar qualquer etapa de mitigação manual necessária usando a VM de reparo e, em seguida, prosseguir para a etapa 5.

  2. Execute az vm repair restore. Este comando trocará o disco reparado do sistema operacional pelo disco original do sistema operacional da VM. O grupo de recursos e o nome da VM usados aqui são para a VM não funcional usada na etapa 3.

    az vm repair restore -g MyResourceGroup -n MyVM --verbose
    

Verifique e habilite o diagnóstico de inicialização

O exemplo a seguir habilita a extensão de diagnóstico na VM chamada myVMDeployed no grupo de recursos chamado myResourceGroup:

CLI do Azure

az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/

Próximas etapas

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.