Mise à jour d’un serveur Kimsufi (OVH) depuis Debian 10 (Buster) vers Debian 11 (Bullseye)

Il faut régulièrement penser à mettre à jour son serveur Kimsufi.

Je vais essayer d’expliquer brièvement les étapes à suivre pour cela.

  1. On vérifie les problèmes liés à la mise à jour.
  2. Prévoir une connexion SSH depuis 2 emplacements si possible à cause d’un problème sur SSH durant l’installation.
  3. On va effectuer une mise à jour des paquets avec apt-get update && apt-get upgrade
  4. On va sauvegarder les données :
    mkdir /root/svg_special; cp -R /var/lib/dpkg /root/svg_special/; cp /var/lib/apt/extended_states /root/svg_special/; dpkg --get-selections "*" > /root/svg_special/dpkg_get_selection; cp -R /etc /root/svg_special/etc
  5. Ensuite il est conseillé d’utiliser screen pour pouvoir se reconnecter (avec screen -r) à en cas de déconnexion :
    screen
  6. Le processus de mise à niveau décrit sur le site de Debian a été conçu pour des mises à niveau des systèmes « purs » sans paquet provenant d’autres sources. Pour une meilleure fiabilité du processus de mise à niveau, vous pouvez supprimer ces paquets du système avant de commencer la mise à niveau :
    aptitude search '~i(!~ODebian)'
  7. On peut éventuellement purger les vieux paquets obsolètes. Pour cela on va d’abord les lister, puis on peut les purger si tout semble bon:
    aptitude search '~o'
    aptitude purge '~o'
  8. On peut lancer la commande dpkg --audit pour s’assurer que tout est bon avant la migration. On peut également taper dpkg --get-selections "*" | more et vérifier qu’aucun paquet n’est en on hold
  9. Maintenant il faut remplacer tous les « buster » de /etc/apt/sources.list par des « bullseye » (on pourra par exemple utiliser sed -i 's/buster/bullseye/g' /etc/apt/sources.list)

    On vérifiera aussi les fichiers qui se trouvent dans /etc/apt/sources.list.d, en modifiant par exemple la source pour MariaDB.

    J’ai également dû remplacer la ligne deb http://security.debian.org/ bullseye/updates main contrib non-free de mon fichier /etc/apt/sources.list par deb http://security.debian.org/debian-security bullseye-security main contrib non-free.

  10. Il est recommandé d’utiliser le programme /usr/bin/script pour enregistrer une transcription de la session de mise à niveau. Ainsi, quand un problème survient, on a un enregistrement de ce qui s’est passé. Pour démarrer un enregistrement, taper :
    script -t 2>~/upgrade-buster.time -a ~/upgrade-buster.script
  11. On passe aux choses sérieuses, en commençant par mettre à jour les listes des paquets :
    apt-get update
  12. On va vérifier qu’on a la place suffisante (un message explicite apparait sinon) :
    apt -o APT::Get::Trivial-Only=true full-upgrade
  13. On va maintenant faire une mise à jour minimale :
    apt-get upgrade
  14. Et à partir de là le système va vous questionner… en général choisir l’option par défaut si vous ne savez pas quoi répondre
  15. Puis on continue avec
    apt full-upgrade

Cette dernière étape va durer un certain temps. Une fois terminé, vous pouvez redémarrer le serveur pour s’assurer que tout va bien.

Il est bien de vérifier que la version actuelle de PHP est correctement utilisée par Apache et qu’elle correspond à ce qu’on veut. Pour cela on vérifie la version avec:

php -v

Ensuite on regarde les versions de PHP disponibles dans les modules d’Apache :

ls -l /etc/apache2/mods-available/php*

Et on regarde celle activée :

ls -l /etc/apache2/mods-enabled/php*

On regarde également dans le dossier des modules pour vérifier quelle version on a :

ls -l /etc/apache2/modules/libphp*

Si la version souhaitée est manquante dans les modules, alors on l’installe, par exemple pour la 7.4 :

apt-get install php7.4 php7.4-mysql

On s’assure ensuite de bien activer la bonne version, par exemple en passant de la v7.0 à v7.4 :

a2dismod php7.0
a2enmod php7.4

Et on redémarre Apache :

systemctl restart apache2

Une fois les erreurs corrigées, on va nettoyer tous les paquets avec :

apt-get autoremove

Note : pour arrêter screen on fait CTRL + A puis k.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*