Come migrare Discourse da un server a un altro con lo stesso nome DNS

Grazie. A quanto pare, la procedura “lift n shift” non è stata così pulita come pensavo; ci sono alcune verifiche da effettuare prima e dopo per garantire un’operazione di “lift n shift” fluida (Postgres è stato aggiornato dalla versione 12.0 alla 13.0, il che mi ha insegnato alcune lezioni sul processo di “lift n shift”). Ecco una guida passo dopo passo per riferimento futuro per chi cerca di spostarsi su un server Amazon LightSail (1 GB di RAM):

Server Originale

  • Crea un backup su S3
  • cd /var/discourse
  • ./launcher rebuild # ottieni l’ultima build per una transizione semplice
  • ./launcher cleanup # pulisci per rimuovere i dati vecchi e ridurre le dimensioni del pacchetto
  • ./launcher stop app # non farlo causa un errore durante il tentativo di ricostruire l’app successivamente con Postgres
  • tar -zcvf /var/discourse discourse.tar.gz

Nuovo Server Amazon LightSail

  • Installa l’immagine Ubuntu 20.20 da Amazon (1 GB di RAM)
  • Installa Docker
  • Crea 2 GB di swap # non farlo potrebbe causare il fallimento della ricostruzione
  • Configura vm.overcommit_memory=1 # non farlo potrebbe causare un errore con Postgres durante la ricostruzione
  • Trasferisci via FTPS discourse.tar.gz dal server originale
  • tar -zxvf discourse.tar.gz -C /
  • cd /var/discourse
  • Imposta UNICORN_WORKERS in app.yml a 2 # aumentarlo oltre 2 con 1 GB di RAM rischia di causare swapping e throttling a causa di un’eccessiva attività del disco
  • ./launcher rebuild
  • Modifica il DNS per puntare al nuovo server Amazon

Esiste un modo più semplice per migrare i server (lift n shift) senza dover seguire l’intero processo di configurazione di Discourse?