Corrigir a instalação do Discourse no Digital Ocean que quebrou durante a atualização do Docker

O que você gostaria que fosse feito?
Minha instalação do Discourse tem funcionado perfeitamente por 3 anos. Fiz uma atualização manual para o Docker e agora tudo está quebrado. Só consigo acessar o servidor em Modo de Recuperação. Não consigo iniciar o Docker. Quando inicio o servidor a partir do disco rígido (em vez do Modo de Recuperação), não consigo me conectar via SSH.

Quando você precisa que seja feito?
Faça o Discourse funcionar novamente!

Tenho um snapshot de 2 meses atrás, embora prefira NÃO perder os dados dos últimos 2 meses. Também tenho um snapshot de logo após o Docker ter quebrado.

Contratei um desenvolvedor há algumas horas e ele não conseguiu concluir o projeto, pois está tarde para ele, mas preciso que isso seja corrigido o mais rápido possível. Este é um site de produção.

Ele declarou:

todas as verificações padrão foram feitas, o ssh está funcionando, o tráfego não está bloqueado, atualizamos a configuração do ssh para usar a autenticação por senha. O que precisamos fazer é investigar quais etapas foram feitas antes dessa quebra e investigar os logs relacionados.

Qual é o seu orçamento, em USD, que você pode oferecer para esta tarefa?
Pagarei por hora pela tarefa, à taxa de mercado. Apenas compartilhe sua taxa.

2 curtidas

Enviei uma mensagem privada. Como disse lá, pode ser mais rápido criar um novo Droplet.

3 curtidas

Um grande OBRIGADO a @jericson pela sua ajuda!

Aqui está o que acabamos fazendo:

  1. Obter acesso de recuperação ao site antigo
  2. Anexar uma unidade de rede (Digital Ocean Volume Block Storage)
  3. Compactar (fazer um arquivo tar) os arquivos de /var/discourse
  4. Exfiltrar esses arquivos para a unidade de rede
  5. Desligar o servidor antigo e desanexar a unidade de rede
  6. Criar uma nova organização Discourse em um novo servidor
  7. Conectar a unidade de rede
  8. Descompactar os arquivos
  9. Encontrar um backup do backup de 7 dias
  10. Restaurar para aquele ponto

Tentamos apenas mover a pasta /var/discourse em sua totalidade para o novo servidor, mas encontramos problemas com o Redis (não tenho certeza se esses eram os problemas principais, mas foi o que foi sinalizado).

Grato novamente pela sua ajuda, Jon. Obrigado!

5 curtidas

Fico feliz que você conseguiu consertar sua instalação. Bom trabalho @jericson :clap: :slight_smile: :discourse:

4 curtidas

Só por curiosidade. Há algumas mensagens recentes de atualizações quebradas relacionadas ao Docker e DigitalOcean. Isso é apenas coincidência ou há uma causa comum que outros administradores do Discourse no DigitalOcean encontrarão se atualizarem? Estou perguntando porque sou um deles. :sweat_smile:

@waffleslop @jericson bom trabalho e obrigado por postar as informações sobre o que você fez para consertar - é sempre bom ter um recurso assim como auto-hospedeiro, caso eu tenha problemas!

@icaria36 Eu estou na Digital Ocean para a maioria das minhas instâncias e atualizei tanto o sistema operacional quanto o codebase do Discourse muito recentemente, sem nenhum problema. (Espero que postar isso não me dê azar!)

2 curtidas

Posso confirmar que todas as atualizações foram muito fáceis até ontem. Atualizei o Docker pela GUI e funcionou. Então, fui atualizar os próximos 3 itens e pressionei um deles (não me lembro qual) primeiro. Nada aconteceu. Esperei alguns segundos e pressionei o outro… depois o outro. Talvez eu tenha agido muito rápido e travado as coisas? Acabei entrando no console e encontrei uma mensagem sugerindo uma reinicialização, então reiniciei a máquina. Ela nunca mais voltou online completamente depois disso.

É possível que eu tenha reiniciado durante uma atualização/instalação que, enquanto escrevo isso, parece bem estúpido fazer!

3 curtidas

Não dedicamos tempo para investigar a causa do problema porque eu queria colocar o @waffleslop em funcionamento o mais rápido possível. Atualizei meus servidores Discourse (hospedados no DigitalOcean) sem problemas. No entanto, eu uso a linha de comando em vez da GUI, já que tenho uma instalação não padrão.

Posso recomendar algumas coisas para minimizar o risco de tempo de inatividade prolongado:

  1. Faça um backup antes de fazer qualquer coisa! Eu me pergunto se deveria haver um aviso na interface recomendando fortemente um backup antes que você possa fazer uma atualização. Um backup recente me dá a tranquilidade de que, pelo menos, podemos iniciar um novo Droplet e restaurar as coisas no pior cenário.
  2. Certifique-se de que você pode acessar seu backup! @waffleslop e eu passamos uma parte considerável do nosso tempo descobrindo como obter uma cópia de /var/discourse para o novo Droplet. Algo muito estranho estava acontecendo com o Droplet original e não conseguimos simplesmente scp os arquivos para o novo Droplet. Para meus próprios servidores, coloco backups no S3 e copio para minha máquina local todas as noites. Isso é excessivo? Provavelmente. Mas me dá muitas opções quando as coisas param de funcionar por algum motivo.
  3. Teste seus backups de vez em quando. Quando seus servidores de produção estiverem inativos, você vai querer ter confiança de que sabe o que está fazendo. Idealmente, você testaria um backup logo antes de fazer uma atualização, para que tenha um lugar para recorrer se algo der errado com a produção. Mas geralmente é suficiente tentar um backup com a frequência necessária para manter o processo fresco em sua mente.
  4. Duas cabeças pensam melhor que uma. Talvez isso seja interesse próprio falando, mas pode ser muito mais fácil passar por uma emergência se você puder compartilhar sua tela em uma chamada com alguém que tenha experiência com esse tipo de situação. Idealmente, você quer alguém que saiba usar a linha de comando.

Contanto que você faça um backup, você estará bem seguro para atualizar.

5 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.