Changement de fournisseur de domaine et aussi de domaine de forum, donc mieux vaut mettre à niveau d’abord… mauvaise idée, j’ai oublié que 50% de mes mises à niveau de Discourse échouent .
Peut-être un problème avec “gem ‘mini_racer’” et j’ai trouvé des commentaires sur des distributions/gcc trop anciennes, mais comme le domaine expire dans 9 jours, j’ai juste décidé de restaurer la sauvegarde, via la console puisque le site est maintenant en panne (et je viens de publier le message que l’URL du forum va changer, donc les gens pourraient essayer maintenant, oups).
Ce qui échoue aussi. Oups encore, apparemment le site sera en panne un peu plus longtemps…
Journaux joints, assez désemparé (comme toujours), j’ai quelques courses à faire donc je croise les doigts pour une solution simple.
Absolument, nous parlons ici de la version 16.04.3 LTS.
Pour l’instant, je veux juste revenir à la version précédente.
Ensuite, avec suffisamment de temps, je vérifierai s’il est même possible de mettre à niveau « facilement » ou si je vais enfin, après 10 ans, faire une nouvelle installation d’Ubuntu à partir de zéro et y déplacer mes affaires. Mais en me rappelant ce que j’ai fait d’autre au fil des ans… oh là là.
Si vous migrez vers un nouveau serveur en utilisant la sauvegarde/restauration et que vous conservez les modifications dans app.yml, tout devrait être transféré avec.
Ouais, mais configurer un nouveau serveur et envisager de déplacer le contrôle source également, ainsi que tout ce que j’ai installé au fil des ans pour l’avoir dans un droplet cloud 24h/24 et 7j/7… Quelque chose que je préfère faire au moins une journée. Ce que je n’ai pas maintenant.
Ok, pour l’instant, je restaure juste le droplet d’hier soir et j’y dépose la sauvegarde. J’espère que ça se passera bien au moins.
Sérieusement, si une mise à niveau échoue, il devrait y avoir un mécanisme de sécurité automatique pour revenir à l’état précédent. Faire une sauvegarde de son droplet semble un peu excessif et dépend de l’administrateur. Être paranoïaque et avoir deux instances et toujours commencer par déplacer l’instance active vers la plus ancienne et mettre à niveau celle-ci… eh bien, c’est probablement ce que je devrais faire de nos jours.
Lorsque votre système d’exploitation a dépassé de 4 ans sa fin de vie, vous ne pouvez pas attendre de mises à jour fonctionnelles.
Passez à une nouvelle machine virtuelle. Il est peu probable qu’il y ait quelque chose sur l’ancien serveur dont vous ayez besoin. Je ne sais pas de quel contrôle de source vous parlez.
Eh bien, j’ai dû mettre à jour app.yml à cause du changement de domaine et j’ai fait une reconstruction de l’application au lieu d’un redémarrage par erreur sans prendre d’instantané dans Digital Ocean d’abord. Je me suis donc forcé à mettre à niveau dès maintenant :(\n\nCe qui a finalement fonctionné. Comme j’ai rencontré quelques obstacles (rires autorisés), je vais publier ici mon parcours de (mal)chance. Peut-être que quelqu’un tombera sur le message d’erreur exact et sera aidé par cela.\n\nTemps passé 3,5h (je suppose que j’aurais dû être paresseux et simplement faire la configuration en 1 clic de Digital Ocean, mais j’étais curieux de savoir si la mise à niveau fonctionnerait).\n\nMise à niveau d’Ubuntu 16.x -\u003e Ubuntu 18.x\nMise à niveau d’Ubuntu 18.x -\u003e Ubuntu 20.x (surpris de voir à quel point cela a bien fonctionné, bien mieux que Windows )\n\n\n\n*Bienvenue sur Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-208-generic x86_64)*\n\n*root@Discourse:~# cd /var/discourse/*\n*root@Discourse:/var/discourse# ./launcher restart app*\n*ERREUR : La version de Docker 19.03.13 n'est pas prise en charge, veuillez mettre à niveau vers au moins 20.10.0, ou la version recommandée 24.0.7*\n*root@Discourse:/var/discourse# sudo apt-get install docker-ce --only-upgrade*\n*Lecture des listes de paquets... Fait*\n*Construction de l'arbre des dépendances*\n*Lecture des informations d'état... Fait*\n*docker-ce est déjà la version la plus récente (5:19.03.13~3-0~ubuntu-xenial).*\n\n******(/(\u0026(%%(\u0026/()(=)/\u0026/))\u0026/*\n******Je ne voulais pas jeter Docker et le réinstaller, mais maintenant j'en ai assez...*\n\n*root@Discourse:/var/discourse# sudo apt remove docker docker-engine docker.io containerd runc*\n*root@Discourse:/var/discourse# sudo apt install apt-transport-https ca-certificates curl software-properties-common*\n*root@Discourse:/var/discourse# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -*\n*root@Discourse:/var/discourse# sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\"*\n*root@Discourse:/var/discourse# sudo apt update*\n\n******J'allais aussi exécuter ceci, mais je ne l'ai pas trouvé dans mes journaux, donc peut-être que je ne l'ai pas fait (la commande ne s'affiche pas, mais l'installation oui, hein ?) :*\n******sudo apt install docker-ce docker-ce-cli containerd.io*\n\n*root@Discourse:/var/discourse# sudo docker --version*\n*Version Docker 28.0.1, build 068a01e*\n*root@Discourse:/var/discourse# ./launcher rebuild app*\n\n****** Cela a pris quelques essais, mais cela semblait finalement mieux après quelques reconstructions.*\n******... enfin arrivé à Redis, youpi... ou pas*\n*docker : Réponse d'erreur du démon : échec de la configuration du réseau du conteneur : le pilote n'a pas réussi à programmer la connectivité externe sur le point de terminaison app (ea1a6cc790c13940435c2626a4e8b6169f04612f4be552be25564def7d5745eb) : échec de la liaison du port hôte pour 0.0.0.0:80:172.17.0.2:80/tcp : l'adresse est déjà utilisée*\n\n******(/(\u0026(%%(\u0026/()(=)/\u0026/))\u0026/ (ou est-ce que je l'ai déjà dit ?)*\n\n*root@Discourse:/var/discourse# hostname -I*\n*139.X.X.X 10.19.0.5 172.17.0.1*\n*root@Discourse:/var/discourse# sudo lsof -i :80*\n*COMMANDE PID UTILISATEUR FD TYPE PÉRIPHÉRIQUE TAILLE/OFF NOEUD NOM*\n*apache2 839 root 4u IPv6 23477 0t0 TCP *:http (LISTEN)*\n*apache2 844 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*\n*apache2 845 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*\n\n******Apache activé par défaut ? Depuis quand ? Jamais !*\n\n*root@Discourse:/var/discourse# sudo systemctl stop apache2*\n*root@Discourse:/var/discourse# sudo systemctl disable apache2*\n*Synchronisation de l'état de apache2.service avec le script de service SysV avec /lib/systemd/systemd-sysv-install.*\n*Exécution : /lib/systemd/systemd-sysv-install disable apache2*\n*Supprimé /etc/systemd/system/multi-user.target.wants/apache2.service.*\n*root@Discourse:/var/discourse# ./launcher start app*\n\n******Et voilà, enfin ! (Après le message habituel de lenteur de nginx)*\n\n******Après le démarrage, j'obtiens bien sûr... ce que j'attendais... bon, une fois que tout fonctionnera pendant une semaine, peut-être que je continuerai à souffrir... après avoir pris un instantané et une sauvegarde et... ;)*\n*Nouvelle version '22.04.5 LTS' disponible.*\n*Exécutez 'do-release-upgrade' pour la mettre à niveau.*\n
J’aurais créé une nouvelle instance et j’aurais soit fait une nouvelle installation et copié la sauvegarde, soit déplacé un site Discourse vers un autre VPS avec rsync. Je fais aussi une version hybride où je synchronise les certificats SSL, mais je restaure ensuite une sauvegarde. Cela évite l’étape de mise à niveau de la base de données.