Sposta un sito Discourse su un altro VPS con rsync

Ho migrato a un nuovo VPS oggi e ho pensato di condividere le mie esperienze, dato che sembra che parecchie persone stiano riscontrando il blocco del sistema operativo di vecchia versione nei loro aggiornamenti ultimamente :blush:

Sono su Digital Ocean, quindi ho creato un nuovo droplet.

Vecchio vps = Ubuntu Server 18.04.6 LTS

Nuovo vps = Ubuntu Server 23.10

Ho fatto la solita manutenzione sul nuovo vps - per favore, modifica a tuo piacimento:

Apt-get update

Apt-get upgrade

Apt-get install fail2ban

ufw default deny incoming

ufw default allow outgoing

ufw allow ssh

ufw allow http

ufw allow https

ufw enable

Poi ho creato una nuova directory vuota per Discourse:

sudo mkdir -p /var/discourse

Poi ho installato Docker:

wget -qO- https://get.docker.com/ | sh

Poi ho cambiato il TTL sul mio DNS da 30 minuti a 10 minuti (il minimo consentito da GoDaddy).

Sul mio vecchio server, ho scaricato una copia locale del backup del database di Discourse di ieri sera (non si hanno mai abbastanza backup locali). Ho anche scaricato una copia di app.yml sul mio pc locale.

Come suggerito da alcune persone sopra, ho fatto un rsync “root-to-root”. Ho usato l’indirizzo IP piuttosto che il nome host, in modo da poter evitare qualsiasi confusione DNS. Inoltre, come suggerito sopra, ho usato gli switch -avz:

rsync -avz root@old.ip.address.here:/var/discourse /var

Per riferimento, la mia cartella discourse è di 25 GB.

Ci sono voluti circa 25 minuti per fare il rsync dal vecchio server al nuovo server. Questo è stato semplicemente tra due droplet Digital Ocean nella stessa regione LON1. Le tue esperienze potrebbero differire.

Dopo aver fatto il rsync e aver provato una ricostruzione, ho riscontrato lo stesso errore che @piratdavid ha riscontrato riguardo a postgres database system is shut down.

Quindi ho fermato l’app sul vecchio vps:

./launcher stop app

E ho fatto un altro rsync, solo per le modifiche questa volta:

rsync -avz --delete root@old.ip.address.here:/var/discourse /var

Poi ho riavviato l’app Discourse sul vecchio server e molto rapidamente l’ho messa in Modalità Manutenzione - questo è in modo che le persone possano ancora accedervi e vedranno il consueto messaggio di avviso di manutenzione.

Questo mi dà anche un po’ di tempo per lavorare sul nuovo vps :blush:

Ho aggiornato il mio file HOSTS sul mio pc locale in modo da poter accedere a discourse sul nuovo vps senza avvisi / problemi del browser.

Sul nuovo vps ho quindi eseguito:

./discourse-setup

Questo è stato fatto in modo che potesse aggiornare automaticamente le impostazioni di RAM e CPU nel file app.yml.

Poi ho fatto una ricostruzione dell’app sul nuovo vps:

./launcher rebuild app

Ho fatto alcuni test preliminari, tutto bene.

DNS aggiornato - lavoro fatto.

Grazie per l’argomento dettagliato, a tutti :smiley:

4 Mi Piace