J’ai récemment mis à jour mes serveurs auto-hébergés de Debian Buster (10) vers Bullseye (11), et ai eu des difficultés sur les Olinuxino.
Motivations
Au-delà d’avoir des versions plus récentes de tous les packages, il y avait deux autres motivations:
- un problème sur iptables qui rendait k3s instable: https://github.com/k3s-io/k3s/issues/3117
- le fait que la prochaine version de Nextcloud (la 24) nécessitera PHP 7.4, alors que Buster ne fournit que du 7.3
Sur Olinuxino A64
J’aurais souhaité faire une simple upgrade, en suivant la documentation officielle de Debian.
J’ai demandé à Olimex si cela était supporté pour les machines installées avec leurs images, mais n’ai eu droit qu’à une laconique réponse me renvoyant vers les images bullseye (qui ne permettent qu’une installation de zéro, pas une upgrade): https://www.olimex.com/forum/index.php?topic=8514.0.
Personne d’autre sur le forum n’ayant visiblement tenté l’expérience, j’ai plutôt fait des réinstallations. J’en ai profité pour rendre mon playbook Ansible https://gitlab.com/mossroy/ansible-role-init-a64/ compatible avec cette version de Debian.
Sur Olinuxino A20
Mes Olinuxino A20 Micro avaient été installés avec le debian-installer (et non une image fournie par Olimex). J’étais donc confiant sur le fait que l’upgrade de Debian se fasse sans problème.
J’ai eu tort: après upgrade, j’avais des « kernel panic » toutes les quelques heures. Et le résultat était le même si je réinstallait Debian Bullseye de zéro, avec le debian-installer: c’était certainement un problème de kernel.
Je me suis donc résolu à installer l’image fournie par Olimex. Le kernel est stable, mais c’est très dommage de devoir revenir sur ces images custom plutôt que d’avoir une « vraie » Debian propre et bien maintenue.
Sur Sheevaplug
Oui, j’ai toujours cet appareil, qui tourne H24 depuis 2010!
Il avait été installé avec le debian-installer il y a longtemps. Aucun souci lors de l’upgrade: du standard Debian. Pourquoi ce n’est pas aussi simple avec les appareils d’Olimex?
Conclusion
Compte tenu qu’une réinstallation est bien plus impactante qu’une upgrade (ne serait-ce que sur le temps d’indisponibilité), je n’ai pas encore migré tous mes appareils. Il me reste quelques A20 et A64, que je basculerai au fur et à mesure.
En tous cas, j’en veux encore à Olimex de ne pas mieux travailler avec les personnes de linux-sunxi, de sorte que leurs appareils soient (et restent) supportés par le kernel « mainline », et donc par Debian.
Je suis frustré de devoir utiliser leurs images plutôt que le debian-installer, qui ouvre tellement plus de possibilités (partitionnement, chiffrement etc), et fournit un système bien mieux maintenu (repos Debian gérés par une grosse communauté vs images et repos Olimex avec lesquels j’ai eu beaucoup de problèmes), et avec une gestion rodée de la sécurité.
Dernier exemple en date: il y a récemment eu la faille de kernel « dirty pipe ». Elle a été corrigée très rapidement chez Debian (et installable facilement, et sans risque de régression). Cela a mis plus de temps chez Olimex, mais surtout leur mise à jour a introduit une régression. Parce qu’ils ne se sont pas contentés d’ajouter le (tout petit) patch: ils ont ajouté d’autres modifications, apparemment insuffisamment testées.
En tous cas, cela m’a conforté dans l’objectif de migrer tout ce que je peux sur Kubernetes (en utilisant k3s). De sorte d’être le moins dépendant possible de ces images Olimex (sauf sur le kernel, hélas), et de pouvoir plus facilement réinstaller les appareils sans interruption de service.