Ubuntu recommande de mettre à jour une installation serveur en utilisant la commande do-release-upgrade. Cette commande fait partie du paquet update-manager-core, elle n’a aucune dépendance graphique et est installée par défaut. Ce tutoriel vous montre comment utiliser la méthode de mise à jour recommandée pour Ubuntu Linux 16.04 LTS mais peut être appliquée à toutes les versions d’Ubuntu dont la dernière LTS la 22.04.
Comment mettre à jour Ubuntu version LTS
Tapez la commande apt ou la commande apt-get pour mettre à jour le système existant :
# sudo apt update # sudo apt upgrade
Si Linux à mis à jour son noyau vous devez redémarrer votre serveur.
# sudo reboot
Supprimez les anciens noyaux Linux qui ne sont plus utilisés avec cette commande
# sudo apt --purge autoremove
Si vous avez un pare-feu fonctionnant sur ufw, ouvrez le port ssh 1022 en utilisant la syntaxe ufw ci-dessous. Ce port sera ouvert pendant la mise à jour au cas ou elle échouerait pour prendre la main sur votre serveur.
# sudo ufw allow 1022/tcp comment 'Temp open port ssh tcp port 1022 for upgrade'
Comment passer à une version de Ubuntu LTS en utilisant la fonction do-release-upgrade.
Le processus d’upgrade de Ubuntu est très simple. Mais n’oublier pas que cette manipulation est risquée. Avant chaque mise à jour assurez-vous d’avoir une sauvegarde du serveur ou un snapshot si c’est une machine virtuelle.
Utiliser cette line de commande pour faire la migration vers une version supérieure :
# sudo do-release-upgrade
Si lors de la saisie de la commande ci-dessus, vous avez cette erreur :
# -bash: do-release-upgrade: command not found
L’erreur « Command not found » indique que l’outil de mise à niveau n’est pas installé sur votre système ou votre serveur dans le cloud. Ce problème arrive lorsque vous ou votre fournisseur d’hébergement utilisés une image minimale d’Ubuntu Linux 16.04 LTS pour construire votre serveur en nuage.
Pour installer l’outils de mise à jour, il saisir la commande suivante :
# apt install ubuntu-release-upgrader-core
Ouvrez le fichier /etc/update-manager/release-upgrades avec vi et vérifiez que la variable Prompt est bien égale à lts.
Les différents fichiers constituant la mise à jour vers la nouvelle version LTS sont effectués. Cela peut durer de longues minutes. Tout dépend de votre connexion Internet.
En fonction des logiciels que vous avez installé, on peut vous demander de valider des modifications de fichiers. Exemple ici avec la configuration d’un serveur SMTP pour l’envoi de rapports Fail2Ban.
Lorsque vous ne savez pas, il faut répondre non, afin de conserver le fichier existant. Ici j’ai choisi de rien modifier aux caractères du clavier et autres symboles.
Je conserve la configuration du fichier bash.bashrc et le choix par défaut N me convient parfaitement.
Après un certain temps, vous verrez le message « La mise à niveau du système est terminée ». Puis, appuyez sur y pour redémarrer votre système afin de charger les mises à jour du noyau et du système d’exploitation de votre serveur.
Il faut bien compter une bonne heure pour monter en version. Cela sans compter les tests de bon fonctionnement si vous avez des logiciels d’installés dessus comme Nextcloud, Portainer, Webmin, ….
Maintenant il suffit de rebooter votre serveur pour finir l’installation.
Vérifications générales.
Comme toujours, après une mise à jour voici quelques vérifications à faire.
Connectez-vous à l’aide de la commande ssh :
# ssh user@your-ubuntu-server
Vérifiez la version du noyau Linux d’Ubuntu avec la commande uname
# uname -rms
Assurez-vous que tous les ports nécessaires sont ouverts et fonctionnent avec la commande ss ou la commande netstat :
# sudo ss -tulpn # sudo netstat -tulpn
Utilisez la commande grep/egrep ou la commande tail/cat pour vérifier si les fichiers journaux contiennent des erreurs (voici quelques exemples de commandes) :
# dmesg # tail -f /var/log/files # egrep -i 'err|crit' /var/log/dmesg
Vérifier la version de Ubuntu :
# lsb_release -a
Supprimer l’accès au port SSH 1022 :
Lors de la mise à jour un port secondaire a été ouvert par le process de mise à jour de Ubuntu sur le port 1022 (accès SSH), pour avoir accès à la machine si le process SSH (port 22) arrivé à planter.
# netstat -tulpn # kill num_pid
Vérifications spécifiques.
Dans cette section je vais vous faire un petit retour sur expérience de la mise à jour de mon serveur VPS. J’utilise quelques utilitaires qui ont demandés de mettre les mains dans le cambouis.
Nextcloud.
Voici le message d’erreur, que j’ai eu lorsque j’ai testé mon instance Nextcloud. Aie, les « locales » en ont pris un coup.
Nextcloud, utilise PHP-FPM qui est l’une des nombreuses façons d’utiliser PHP, qui fait partie de l’ensemble Apache Mysql PHP sur vos systèmes d’exploitation. Ce module optimise l’utilisation de PHP.
J’ai dû modifier le fichier /etc/php/7.1/fpm/php.ini, l’instruction intl.default_locale. J’ai spécifié les paramètres régionaux.
N’oubliez pas de redémarrer le service php-fpm après cette modification.
# service php7.1-fpm restart
Les dépôts.
Il semblerait que plusieurs dépôts aient été supprimés de mes sources, notamment ceux de webmin.
Voici comment les rajouter pour faire la mise à jour du logiciel.
# wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add - # add-apt-repository "deb [arch=amd64] http://download.webmin.com/download/repository sarge contrib"
Pensez bien à vérifier votre fichier sources.list après une mise à jour. Il se trouve dans le répertoire /etc/apt/.
Erreurs rencontrés lors de la MAJ de Ubuntu LTS
Dans ce paragraphe, je vais énumérer les différentes erreurs que j’ai pu rencontrées lors d’une mise à jour LTS de Ubuntu.
Erreur #1
Si vous avez des difficultés avec l’utilisation de Linux, si vous butez sur un message d’erreur de Linux, n’hésiter pas à consulter mon tutoriel sur Comment utiliser et optimiser Linux.
Erreur #2
Pour résoudre cette erreur, il faut installer le package ci-dessous :
# sudo apt-get install python3-dbus