Conseils pour upgrade ?

Tags: #<Tag:0x00007fb429ba8288>

Ayant quelques serveurs en production (en Jessie ou Stretch), j’hésite toujours franchement à lancer des upgrades réguliers dans la mesure où ça peut très très mal se passer et causer des heures de sueurs froides à restaurer au plus vite un site offline et ses divers services … mais à un moment il faut bien en passer par là, et les failles APT récentes sont une raison solide de se lancer !

J’ai donc commencé à mettre à jour applicatif par applicatif sur une Stretch après backup complet (site, base, config) : en réglant la source.list uniquement sur du “main contrib non-free”, en vérifiant après update la policy de chaque élément de la liste --upgradable (elle est longue …) et en procédant une à une chaque install successive afin éviter le possible déraillement d’un upgrade total - qui me donne toujours l’impression d’un gros bouton rouge à code nucléaire …

Idéalement je procéderais si je le pouvais par des VMs avec un miroir de test pour mise à jour complète, vérification que tout marche dessus puis bascule DNS interne, mais je ne peux pas forcément faire cela sur certains serveurs … alors peut être qu’il y a d’autres astuces possibles que je ne connais pas permettant de faciliter ce type de problématique ?

Merci par avance de vos suggestions et conseils !

Bonjour,

Personnellement je fais ça en mode bourrin sur des heures non-ouvrées :

  1. Création d’un instantané (snapshot)
  2. Mise à jour de la liste des dépôts : apt update
  3. Téléchargement des mises à jour: apt dist-upgrade --download-only
  4. Installation des mises à jour: apt upgrade
  5. Redémarrage
  6. Si ça ne va pas, retour à l’instantané, sinon la suite
  7. Création d’un instantané
  8. Mise à jour de la distribution: apt dist-upgrade
  9. Redémarrage
  10. Si ça se passe mal, retour au à l’instantané du point 7, sinon la suite
  11. Nettoyage: apt purge --auto-remove && apt autoclean
  12. Supprimer l’instantané du point 1
  13. Changement de version de Debian: sed -i 's#jessie#stretch#g' /etc/apt/sources.list
  14. Ajouter le dépôt de sécurité de jessie: echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list
  15. Reprendre du point 1 à 12
  16. Après quelques jours, supprimer les instantanés

Jusqu’à maintenant je n’ai pas eu de réel surprise. Le travail en heure non-ouvrés permet d’avoir un peu de temps pour corriger les quelques merdouilles éventuelles.

Changement de version de Debian: sed -i 's#jessie#buster#g' /etc/apt/sources.list

Passer de jessie à buster c’est sauter l’étape Stretch ?

Ajouter le dépôt de sécurité de jessie: echo "deb http://security.debian.org/debian-security stretch/updates main" >> /etc/apt/sources.list

je vois plutôt que tu as mis le dépôt sécurité de Stretch

Mouarf, oublié de modifier la deuxième partie, je corrige, merci !

Erf, corrigé aussi, merci !

Sinon quand je travaillais on avait des équipements en structure actif/stand-by.

Les changements de logiciels se faisaient sur le stand-by et quand on avait fini et on basculait le stand-by en actif puis on mettait à jour l’ancien actif.

Plus tu fais des “rolling updates”, moins ça se passe mal.
Il vaut mieux avoir un process d’update régulier genre mensuel, AMA.
Aprés, tu peux cloner tes machines en virtualbox et tester tes updates, si tu veux t’assurer de ne pas interrompre ta production.

Merci de vos conseils, juste besoin d’une précision sur le 1er suggéré par sk4hrr :

Quel outil est approprié pour ça, sachant que je n’ai pas trop la possibilité de faire des VMs en terme d’espace disque et d’install …

J’ai parcouru ce guide avec Btrfs mais ça semble quand même velu à mettre en oeuvre tout comme de bidouiller le grub : https://linuxfr.org/news/btrfs-snapshot-et-rollback-sur-votre-systeme-gnu-linux

Sinon je vois que plusieurs commentateurs évoquent snapper, est-ce viable ? https://packages.debian.org/search?keywords=snapper

Ou peut être encore un autre outil ?

Erf, effectivement, je parle d’instantané dans un contexte de virtualisation. Lorsqu’il s’agit de serveurs physique, je fais une image CloneZilla. Cela sous-entends un arrêt le temps de la sauvegarde…

De bonnes idées dans le guide de l’admin
https://www.debian.org/doc/manuals/debian-handbook/sect.regular-upgrades.fr.html

la doc Red Hat est bien faite
https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-snapper

Merci pour ces liens et vos conseils …

… malheureusement je ne peux en appliquer aucun car :

  • mon environnement n’utilise aucune virtualisation actuellement
  • Snapper n’est pas directement compatible avec les partitions ext4
  • LVM2 n’accepte pas de reprendre ma partition ext4 pré-existante

Malgré de nombreuses tentatives, je n’ai pas trouver le moyen de contourner ces problèmes … je commence à me demander si je ne vais pas creuser côté virtualisation finalement, car je ne trouve aucune autre alternative locale à la Snapper qui soit du même niveau - la plupart des solutions trouvées sont plus ou moins des gros backups via rsync.

Si le but avant mise à jour est de faire une image de son système Clonezilla ou tout autre logiciels du même acabit suffit.