Déplacer un site Discourse vers un autre VPS avec rsync

J’ai migré vers un nouveau VPS aujourd’hui et j’ai pensé partager mon expérience car il semble que pas mal de gens rencontrent le blocage du système d’exploitation de l’ancienne version sur leurs mises à jour ces derniers temps :blush:

Je suis sur Digital Ocean, j’ai donc créé un nouveau droplet.

Ancien VPS = Ubuntu Server 18.04.6 LTS

Nouveau VPS = Ubuntu Server 23.10

J’ai effectué le nettoyage habituel sur le nouveau VPS - veuillez modifier selon vos besoins :

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

J’ai ensuite créé un nouveau répertoire vide pour Discourse :

sudo mkdir -p /var/discourse

Puis j’ai installé Docker :

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

Ensuite, j’ai changé le TTL de mon DNS de 30 minutes à 10 minutes (le minimum autorisé par GoDaddy).

Sur mon ancien serveur, j’ai téléchargé une copie locale de la sauvegarde de la base de données Discourse de la nuit dernière (on n’a jamais trop de sauvegardes locales). J’ai également téléchargé une copie de app.yml sur mon PC local.

Comme suggéré par plusieurs personnes ci-dessus, j’ai effectué un rsync de “root à root”. J’ai utilisé l’adresse IP plutôt que le nom d’hôte, afin d’éviter toute confusion DNS. Comme suggéré ci-dessus, j’ai utilisé les commutateurs -avz :

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

Pour référence, mon dossier discourse fait 25 Go.

Il a fallu environ 25 minutes pour le rsync de l’ancien serveur vers le nouveau. C’était simplement entre deux droplets Digital Ocean dans la même région LON1. Vos expériences peuvent varier.

Après le rsync et une tentative de reconstruction, j’ai rencontré la même erreur que celle rencontrée par @piratdavid concernant le système de base de données postgres database system is shut down.

J’ai donc arrêté l’application sur l’ancien VPS :

./launcher stop app

Et j’ai effectué un autre rsync, uniquement pour les modifications cette fois :

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

Ensuite, j’ai redémarré l’application Discourse de l’ancien serveur et l’ai mise très rapidement en mode Maintenance - ceci afin que les gens puissent toujours y accéder et voir le message d’avertissement habituel de maintenance.

Cela me donne également le temps de travailler sur le nouveau VPS :blush:

J’ai mis à jour mon fichier HOSTS sur mon PC local afin de pouvoir accéder à Discourse sur le nouveau VPS sans avertissements / problèmes de navigateur.

Sur le nouveau VPS, j’ai ensuite exécuté :

./discourse-setup

Ceci afin qu’il puisse mettre à jour automatiquement les paramètres de RAM et de CPU dans le fichier app.yml.

J’ai ensuite effectué une reconstruction de l’application sur le nouveau VPS :

./launcher rebuild app

J’ai effectué quelques tests de base, tout va bien.

DNS mis à jour - travail terminé.

Merci pour ce sujet détaillé, tout le monde :smiley:

4 « J'aime »