Arreglar la instalación de Discourse en Digital Ocean que se rompió durante la actualización de Docker

¿Qué te gustaría que se hiciera?
Mi instalación de Discourse ha estado funcionando de maravilla durante 3 años. Hice una actualización manual a Docker y ahora todo está roto. Solo puedo acceder al servidor en Modo de Recuperación. No puedo iniciar Docker. Cuando inicio el servidor desde el disco duro (en lugar del Modo de Recuperación), no puedo conectarme a través de SSH.

¿Cuándo lo necesitas hecho?
¡Que Discourse vuelva a funcionar!

Tengo una instantánea de hace 2 meses, aunque preferiría NO perder los datos de los últimos 2 meses. También tengo una instantánea de inmediatamente después de que Docker se rompiera.

Contraté a un desarrollador hace unas horas y no pudo completar el proyecto porque es tarde para él, pero necesito que esto se arregle lo antes posible. Este es un sitio de producción.

Él declaró:

se han realizado todas las comprobaciones estándar, ssh funciona, el tráfico no está bloqueado, actualizamos la configuración de ssh para usar la autenticación por contraseña. Lo que necesitamos hacer es investigar qué pasos se dieron antes de esta interrupción e investigar los registros relacionados.

¿Cuál es tu presupuesto, en $ USD que puedes ofrecer para esta tarea?
Pagaré por horas por la tarea, a la tarifa del mercado. Simplemente comparte tu tarifa.

2 Me gusta

Envié un mensaje privado. Como dije allí, podría ser más rápido crear una nueva Droplet.

3 Me gusta

Un gran AGRADECIMIENTO a @jericson por tu ayuda.

Esto es lo que terminamos haciendo:

  1. Obtener acceso de recuperación al sitio antiguo
  2. Adjuntar una unidad de red (Almacenamiento en Bloque de Volumen de Digital Ocean)
  3. Comprimir (hacer un archivo tar) los archivos de /var/discourse
  4. Exfiltrar esos archivos a la unidad de red
  5. Apagar el servidor antiguo y desconectar la unidad de red
  6. Construir una nueva organización de Discourse en un nuevo servidor
  7. Conectar la unidad de red
  8. Descomprimir los archivos
  9. Encontrar una copia de seguridad de la copia de seguridad de 7 días
  10. Restaurar a ese punto

Habíamos intentado simplemente mover la carpeta /var/discourse en su totalidad al nuevo servidor, pero nos encontramos con problemas de Redis (no estoy seguro de si esos eran los problemas centrales, pero eso fue lo que se señaló).

Agradecido de nuevo por tu ayuda, Jon. ¡Gracias!

5 Me gusta

Me alegro de que hayas podido solucionar tu instalación. Buen trabajo @jericson :clap: :slight_smile: :discourse:

4 Me gusta

Solo por curiosidad. Hay un par de mensajes recientes de actualizaciones fallidas relacionadas con Docker y DigitalOcean. ¿Es solo una coincidencia o hay una causa común que otros administradores de Discourse en DigitalOcean encontrarán si actualizan? Lo pregunto porque soy uno de ellos. :sweat_smile:

@waffleslop @jericson buen trabajo y gracias por publicar la información sobre lo que hiciste para arreglarlo. ¡Siempre es bueno tener un recurso así como autoalojador, en caso de que alguna vez tenga problemas!

@icaria36 Estoy en Digital Ocean para la mayoría de mis instancias y he actualizado tanto el sistema operativo como la base de código de Discourse muy recientemente sin ningún problema. (¡Espero que publicar esto no me traiga mala suerte!)

2 Me gusta

Confirmo que todas las actualizaciones han sido pan comido hasta ayer. Actualicé Docker desde la GUI y funcionó. Luego fui a actualizar los siguientes 3 elementos y presioné uno de ellos (no recuerdo cuál) primero. No pasó nada. Esperé unos segundos y presioné el otro… luego el otro. ¿Quizás actué demasiado rápido y lo bloqueé? Terminé iniciando sesión en la consola y encontré un mensaje que sugería un reinicio, así que reinicié la máquina. No volvió a estar en línea por completo después de eso.

Es posible que haya reiniciado durante una actualización/instalación que, mientras escribo esto, ¡me parece bastante tonto haber hecho!

3 Me gusta

No dedicamos tiempo a investigar la causa del problema porque quería poner en marcha @waffleslop lo antes posible. He actualizado mis servidores de Discourse (alojados en DigitalOcean) sin problemas. Sin embargo, utilizo la línea de comandos en lugar de la GUI, ya que tengo una instalación no estándar.

Puedo recomendar algunas cosas para minimizar el riesgo de tiempos de inactividad prolongados:

  1. ¡Haz una copia de seguridad antes de hacer nada! Me pregunto si debería haber una advertencia en la interfaz que recomiende encarecidamente una copia de seguridad antes de poder realizar una actualización. Una copia de seguridad reciente me da la tranquilidad de que al menos podemos iniciar un nuevo Droplet y restaurar las cosas en el peor de los casos.
  2. ¡Asegúrate de poder acceder a tu copia de seguridad! @waffleslop y yo pasamos una parte considerable de nuestro tiempo averiguando cómo obtener una copia de /var/discourse en el nuevo Droplet. Estaba sucediendo algo muy extraño con el Droplet original y no pudimos simplemente scp los archivos al nuevo Droplet. Para mis propios servidores, guardo copias de seguridad en S3 y las copio en mi máquina local todas las noches. ¿Es eso excesivo? Probablemente. Pero me da muchas opciones cuando las cosas dejan de funcionar por alguna razón.
  3. Prueba tus copias de seguridad de vez en cuando. Cuando tus servidores de producción estén inactivos, querrás tener la confianza de que sabes lo que estás haciendo. Idealmente, probarías una copia de seguridad justo antes de realizar una actualización para tener un lugar al que recurrir si algo sale mal con la producción. Pero generalmente es suficiente intentar una copia de seguridad con la frecuencia necesaria para mantener el proceso fresco en tu mente.
  4. Dos cabezas piensan mejor que una. Tal vez esto sea egoísmo, pero puede ser mucho más fácil superar una emergencia si puedes compartir tu pantalla en una llamada con alguien que tenga experiencia en este tipo de situaciones. Idealmente, querrás a alguien que sepa cómo usar la línea de comandos.

Siempre que hagas una copia de seguridad, deberías estar bastante seguro al actualizar.

5 Me gusta

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