Mise à jour des serveurs de ZdS

Vers Debian 11

a marqué ce sujet comme résolu.

Bonsoir à tous,

La version 11 de Debian est disponible depuis le 14 août. Je me suis proposé pour mettre à jour nos serveurs (prod et bêta) et faire les modifications nécessaires dans le code de ZdS.

Puisque le sujet touche l’infrastructure de ZdS, le code zds-site et le code ansible-zestedesavoir, je crée un sujet ici pour suivre l’avancée et garder plus facilement une trace des discussions. Aussi, ça pourra servir de mémo pour les prochaines mise à jour majeures de Debian.

Debian 11.1 devrait être disponible dans un mois, je pense qu’on peut attendre ce moment, histoire que les bugs les plus sévères causés par la mise à jour soient rapportés et, espérons-le, corrigés. Mais cela ne nous empêcher de nous atteler tout de suite à la mise à jour, les différences entre la version 11 et 11.1 devraient être minimes.

Voici donc une liste de choses à faire pour passer à Debian 11:

  • mettre à jour les scripts de ansible-zestedesavoir: la box Vagrant utilisée, la CI
  • mettre à jour le script d’installation de ZdS pour qu’il fonctionne bien sur Debian 11, la CI
  • mettre à jour Debian sur le serveur de bêta, tester quelques temps
  • mettre à jour Debian sur le serveur de prod

Concernant la CI de GitHub, je viens de me rendre compte que Debian n’était pas disponible comme OS des runners, on se contentera donc de mettre à jour la version d’Ubuntu utilisée.

Aussi, je me disais qu’on pourrait aussi en profiter pour mettre à jour nos autres dépendances back:

Dernier point, et c’est lié au précédent, pourquoi, quand les versions sont suffisamment récentes, ne pas installer les paquets directement depuis les dépôts de Debian, plutôt qu’utiliser les dépôts proposés par le logiciel (voilà un exemple) ? Ça simplifierait le rôle Ansible (pas d’ajout de dépôts spécifiques et de leurs clés) et je pense que même si on sera toujours un peu en retard sur les dernières versions des logiciels, le support pour Debian devrait être assuré.

Voici un tableau récapitulatif pour aider à la réflexion:

Programme Version actuellement utilisée Version dans Debian 11 Version upstream
Nginx 1.20.1 1.18.0 1.20.1
MariaDB 10.4.20 10.5.11 10.6.4
NodeJS 12.22.5 12.21.0 14.17.5 en LTS, 16.8.0 sinon

Bon, d’après le tableau, je suggérerais:

  • Nginx: garder le dépôt upstream (parce qu’on fait une mise à jour et pas une installation à partir de zéro, downgrader le paquet me paraît un peu délicat)
  • MariaDB: utiliser la version dans les dépôts de Debian
  • NodeJS: là, on n’a pas vraiment d’autre choix que d’utiliser la dernière LTS, non disponible dans les dépôts.

Qu’en pensez-vous ?

Salut,

je ne suis pas suffisamment au fait du projet pour commenter sur la plupart des éléments, je peux par contre te donner mon avis concernant Node.js. Je note d’abord que la version 12 de Node est également une version LTS, et ce jusqu’à fin avril 2022, il est donc théoriquement possible de la conserver, ce qui ne nécessiterait aucun changement particulier de notre part à court terme.

Ceci étant rappelé, mon avis personnel sur la question est de passer à Node 16 directement en sautant la 14. Cet avis est en particulier justifié par le fait que la version 16 sera une version LTS à compter du 26 octobre 20211, soit dans très peu de temps. Elle sera maintenue jusqu’à fin avril 2024, ce qui nous laisse bien du temps avant de changer à nouveau.

En théorie, une grande difficulté posée par le passage à Node 16 est le changement du format des lockfiles au niveau de NPM. Il me semble que, hors ZMd, le site utilise exclusivement Yarn, nous ne devrions donc pas être impactés outre mesure. En ce qui concerne ZMd, la manière dont il est installé sur ZdS devrait faire en sorte que le changement de version n’impacte pas le comportement. Si jamais, une version à venir de ZMd (11) passe au nouveau format des locks, et pourrait donc éventuellement être utilisée.

Si jamais la version 16 n’est pas jugée suffisamment stable pour être utilisée avant son passage en LTS, alors restons en 12 jusqu’à octobre (ou, au plus, jusqu’à avril), un changement temporaire vers Node 14 serait certainement du travail gâché.

Voilà pour mon avis, à voir si cela vous convient côté zds-site également, on a peut-être des paquets anciens de ce côté qui seraient embêtés par la MàJ.

Pour répondre à @Moté, qui a écrit pendant que je rédigeais mon message, il y a effectivement ce que je mentionne ci-dessus pour Node >= 16 (en fait c’est NPM 7 qui pose soucis). J’avais vérifié et le problème ne devrait pas se poser avec ZMarkdown en tant que dépendance (ce qui est le cas sur ZdS, on a un package.json indépendant qui requiert ZMd). Si jamais il y a un vrai soucis, faites-le moi savoir car il n’y a plus aucun obstacle technique au passage à NPM 7, le patch est en PR sur le dépôt, il suffit de le fusionner et de publier.

+0 -0

De manière générale c’est préférable d’utiliser les paquets des dépôts Debian (je parle pour NGINX et MariaDB). Tu as une meilleure compatibilité, un seul acteur de confiance et tu simplifies l’installation/mise à jour.

Downgrade NGINX n’est pas grave si tu n’utilises pas de fonctionnalités dans les version 1.19 et 1.20.

Il faudra aussi vérifier que ZdS est bien compatible avec Python 3.9.

on se contentera donc de mettre à jour la version d’Ubuntu utilisée.

Ça pour le coup ça me semble être une mauvaise idée. On a encore 3 ans de support de Debian 10 et donc aucune urgence à faire cette mise à jour.

+1 -0

Ça pour le coup ça me semble être une mauvaise idée. On a encore 3 ans de support de Debian 10 et donc aucune urgence à faire cette mise à jour.

gustavi

Aucune urgence certes, mais s’il y a quelqu’un qui est motivé pour le faire maintenant, pourquoi pas. Après, ce que je comprends pas, c’est que le site est censé supporter Debian / Ubuntu / Arch Linux et Windows. Donc au niveau du runner, peu importe s’il est pas iso-prod.

Pour de l’iso prod, on peut utiliser des runners autohébergé.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte