Migration de Ubuntu à Debian (Phase 3)
La migration en tant que telle
Cet article est le dernier d'une série de trois. Il raconte le déroulement de la migration effective de Ubuntu vers Debian.
Étapes de la migration
Pour rappel, cette migration a été découpée en trois étapes.
La première était de préparer le dossier de configuration du serveur afin de permettre sa transplantation dans une distribution Linux différente. L'article Migration de Ubuntu à Debian (Phase 1) fait le récit de cette première partie.
La deuxième était de préparer les sauvegardes du serveur pour être certains qu'elles contiennent toutes les données nécessaires et qu'elles s'appliquent correctement sur le nouveau système. Elle est détaillée dans l'article Migration de Ubuntu à Debian (Phase 2).
La dernière partie, ici présente, fait un point sur la migration du serveur CLUB1 en tant que telle.
Dernières préparations
Cette fois-ci c'est le grand jour, la migration aura enfin lieu. Quelques jours avant, nous nous sommes dits que c'était tout de même un peu tenter le diable que d'écraser le disque comportant le système actuel lors de la migration. Nous avons jugé plus sage d'acheter un SSD supplémentaire afin de conserver l'ancien intact et pouvoir le réutiliser tel quel en cas de fiasco. Nous nous sommes également dits que quitte à acheter un nouveau matériel, autant profiter du port M.2 présent sur la carte mère, permettant un meilleur débit que le SATA 3 et jusqu'alors inutilisé. Nous achetons donc, un peu en urgence, un SSD Samsung de 1 To chez LDLC.
Au moment de l'écriture de l'article de la phase 2 il restait encore quelques problèmes à résoudre, notamment empêcher les services tout juste installés de se lancer automatiquement. C'est là qu'intervient la fonctionnalité de preset de Systemd, parfaitement adaptée à notre besoin. Nous nous étions aussi rendus compte que la clé de vérification du dépôt de Grafana était périmée dans extrepo, un outil permettant d'ajouter de manière sécurisée des dépôts Debian externes. Heureusement notre proposition de mise à jour a été acceptée juste à temps.
Nous avions prévu d'utiliser les sauvegardes pour réaliser la migration, mais celles-ci se font la nuit, à 5 heures. Pour ne pas perdre les données de la matinée, nous redémarrons le serveur en mode récupération, afin qu'aucun service ne soit lancé, et nous lançons à 12:30 une sauvegarde du système et des bases de données. À partir de cet instant, CLUB1 est inaccessible pour une durée de 9 heures.
Installation de Debian
Une fois la sauvegarde terminée, nous déconnectons l'ancien SSD et installons le nouveau. Les choses sérieuses peuvent commencer.
Les problèmes commencent
Le protocole de restaurations des sauvegardes ayant été bien éprouvé, il n'y a pas eu de grosse surprise lors de la migration. Cependant, tous les services n'avaient pas vraiment été testés lors des exercices, car nous nous sentions capables de finaliser les réparations le moment venu. Il y a donc évidemment eu quelques soucis :
- Un certain temps a été dédié à réparer un problème qui n'en était pas vraiment un avec l'annuaire LDAP. Sa base de données semblait vide alors qu'il suffisait de redémarrer
nslcd
. Et la raison pour laquelleldapfinger
ne nous renvoyait aucun résultat était dû à son fichier de mot de passe corrompu lors de la fusion du dossieretc
. - Les bases de données SQL étaient bien toutes sauvegardées sauf une :
mysql
, automatiquement exclue par le logiciel de sauvegarde. Elle contenanait les utilisateurs et leurs permissions qu'il n'a pas été trop compliqué de recréer avec les scripts de CLUB1. Mais il faudra trouver un moyen de sauvegarder ces données proprement. - Pour une raison mystérieuse, Icecast était impossible à démarrer avant d'avoir relancé la configuration automatique du paquet Debian. Le script InitV appelait
systemctl
, mais aucune unit n'est présente. - Le plugin LDAP pour Tiny Tiny RSS nécessitait de créer un lien symbolique dans
/usr/share/tt-rss/www/plugins/
. - La version de Roundcube avait changé et le dossier vers lequel faire pointer le virtual host aussi.
Il aurait été possible d'éviter ces soucis en amont en testant bien tous les services et en réparant leur configuration à l'avance, mais tout ce travail à faire au préalable est long et épuisant et retarde d'autant plus la migration dont la préparation commençait à s'éterniser.
Enfin fini !
Il reste encore quelques détails à peaufiner sur le protocole de restauration, mais dans l'ensemble la migration s'est plutôt bien déroulée.
Le découpage en phase a permis de rendre plus appréhendable ce processus long et fastidieux. La phase de fusion du dossier /etc
était particulièrement satisfaisante grâce à la puissance de l'outil Git, notamment la possibilité de facilement intégrer les évolutions de la configuration de CLUB1 au cours du temps, en lançant à nouveau la commande de fusion.
Ce chapitre maintenant clos, il va enfin être possible pour CLUB1 de mettre à jour certains logiciels, car pendant toute la période de préparation, les versions des logiciels sur le serveur étaient gelées, pour éviter des imprévus supplémentaires.
Stay tuned pour la prochaine mise-à-jour vers Debian Stable.
Et finalement, nous avons maintenant la certitude que nos sauvegardes nous permettent bien de restaurer l'ensemble du serveur CLUB1 en cas de panne matérielle sur le disque système.
Tous les articles de cette migration
- Migration de Ubuntu à Debian (Phase 1)Premier récit d'une migration épique
- Migration de Ubuntu à Debian (Phase 2)Exercices de restauration de sauvegardes
- Migration de Ubuntu à Debian (Phase 3)La migration en tant que telle