Cosa vorresti che venisse fatto?
La mia installazione di Discourse ha funzionato egregiamente per 3 anni. Ho eseguito un aggiornamento manuale a Docker e ora tutto è rotto. Posso accedere al server solo in modalità di ripristino. Non riesco ad avviare Docker. Quando avvio il server dal disco rigido (invece che dalla modalità di ripristino), non riesco a connettermi tramite SSH.
Quando hai bisogno che venga fatto?
Fai funzionare di nuovo Discourse!
Ho uno snapshot di 2 mesi fa, anche se preferirei NON perdere i dati degli ultimi 2 mesi. Ho anche uno snapshot subito dopo che Docker si è rotto.
Ho assunto uno sviluppatore poche ore fa ed è stato incapace di completare il progetto poiché è tardi per lui, tuttavia ho bisogno che questo venga risolto al più presto. Questo è un sito di produzione.
Ha dichiarato:
sono stati eseguiti tutti i controlli standard, SSH funziona, il traffico non è bloccato, abbiamo aggiornato la configurazione SSH per utilizzare l’autenticazione tramite password. Quello che dobbiamo fare è indagare sui passaggi effettuati prima di questo problema e indagare sui log correlati.
Qual è il tuo budget, in USD, che puoi offrire per questo compito?
Pagherò a ore per il compito, alla tariffa di mercato. Condividi semplicemente la tua tariffa.
Collegare un’unità di rete (Digital Ocean Volume Block Storage)
Comprimere (creare un tar ball) i file di /var/discourse
Esfiltrare quei file sull’unità di rete
Spegnere il vecchio server e scollegare l’unità di rete
Costruire una nuova organizzazione Discourse su un nuovo server
Collegare l’unità di rete
Decomprimere i file
Trovare un backup dal backup di 7 giorni
Ripristinare a quel punto
Avevamo tentato di spostare semplicemente la cartella /var/discourse nella sua interezza sul nuovo server, ma abbiamo riscontrato problemi con Redis (non sono sicuro che fossero i problemi principali, ma era quello che è stato segnalato).
Sono solo curioso. Ci sono un paio di messaggi recenti di aggiornamenti interrotti collegati a Docker e DigitalOcean. È solo una coincidenza o c’è una causa comune che altri amministratori di Discourse su DigitalOcean incontreranno se aggiorneranno? Lo chiedo perché sono uno di quelli.
@waffleslop@jericson buon lavoro e grazie per aver pubblicato le informazioni su cosa hai fatto per risolverlo, è sempre utile avere una risorsa del genere per un self-hoster, nel caso dovessi riscontrare problemi!
@icaria36 Sono su Digital Ocean per la maggior parte delle mie istanze e ho aggiornato sia il sistema operativo che il codebase di Discourse molto di recente senza alcun problema. (Spero che pubblicare questo non mi porti sfortuna!)
Posso confermare che tutti gli aggiornamenti sono stati facilissimi fino a ieri. Ho aggiornato Docker dalla GUI e ha funzionato. Poi sono andato ad aggiornare i successivi 3 elementi e ho premuto su uno di essi (non ricordo quale) per primo. Non è successo niente. Ho aspettato qualche secondo e ho premuto sull’altro… poi sull’altro ancora. Forse ho agito troppo in fretta e ho bloccato le cose? Alla fine ho effettuato l’accesso alla console e ho trovato un messaggio che suggeriva un riavvio, quindi ho riavviato la macchina. Dopo di ciò non è più tornata online completamente.
È possibile che abbia riavviato durante un aggiornamento/installazione che, mentre scrivo, mi sembra piuttosto stupido da fare!
Non abbiamo dedicato tempo a indagare sulla causa del problema perché volevo rendere operativo @waffleslop il prima possibile. Ho aggiornato i miei server Discourse (ospitati su DigitalOcean) senza problemi. Tuttavia, utilizzo la riga di comando piuttosto che l’interfaccia grafica, dato che ho un’installazione non standard.
Posso consigliare alcune cose per ridurre al minimo il rischio di tempi di inattività prolungati:
Esegui un backup prima di fare qualsiasi cosa! Mi chiedo se dovrebbe esserci un avviso nell’interfaccia che raccomandi vivamente un backup prima di poter eseguire un aggiornamento. Un backup recente mi dà la sicurezza che almeno possiamo avviare un nuovo Droplet e ripristinare le cose nel peggiore dei casi.
Assicurati di poter accedere al tuo backup!@waffleslop ed io abbiamo trascorso una parte considerevole del nostro tempo a capire come ottenere una copia di /var/discourse sul nuovo Droplet. Stava succedendo qualcosa di molto strano con il Droplet originale e non siamo stati in grado di copiare semplicemente i file sul nuovo Droplet tramite scp. Per i miei server, metto i backup su S3 e li copio sulla mia macchina locale ogni notte. È eccessivo? Probabilmente. Ma mi dà molte opzioni quando le cose smettono di funzionare per qualche motivo.
Testa i tuoi backup di tanto in tanto. Quando i tuoi server di produzione sono inattivi, vuoi avere la certezza di sapere cosa stai facendo. Idealmente, dovresti testare un backup appena prima di eseguire un aggiornamento in modo da avere un posto su cui ripiegare se qualcosa va storto con la produzione. Ma di solito è sufficiente provare un backup con la frequenza necessaria per mantenere il processo fresco nella tua mente.
Due teste sono meglio di una. Forse è egoismo, ma può essere molto più facile superare un’emergenza se puoi condividere il tuo schermo in una chiamata con qualcuno che ha esperienza in questo tipo di situazione. Idealmente, vuoi qualcuno che sappia usare la riga di comando.
Finché esegui un backup, dovresti essere abbastanza al sicuro per aggiornare.