Préparation à l'application de mises à jour sur Red Hat Linux

Préparation à l'application de mises à jour sur Red Hat Linux

Objectif

Notre objectif est de garantir que la mise à jour du système d'exploitation fonctionnera en douceur et sans erreurs.

Système d'exploitation et versions logicielles

  • Système opérateur: Red Hat Enterprise Linux 6+

Exigences

Accès privilégié aux systèmes

Difficulté

FACILE

Conventions

  • # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
  • $ - Étant donné les commandes Linux à exécuter en tant qu'utilisateur non privilégié régulier

Introduction

Garder le système à jour est une tâche quotidienne pour un Sysadmin, ainsi qu'un utilisateur de bureau. En appliquant les derniers logiciels disponibles (stables) sur le système, nous pouvons profiter des dernières fonctionnalités, et nous serons plus protégés des problèmes de sécurité et nous espérons souffrir moins de bogues. Pour mettre à jour le système dont vous aurez besoin Miam référentiels qui agissent comme source du logiciel mis à jour.

Si vous vous asseyez à côté de la machine qui exécute le système d'exploitation à mettre à jour, vous pouvez facilement agir si quelque chose ne va pas pendant la mise à jour, comme vérifier la sortie sur le terminal ou démarrer sur un système en direct si celui amélioré ne revient pas de redémarrer - mais ce n'est pas toujours le cas. Pensez à un centre de données avec des centaines ou des milliers de machines (virtuelles), ou simplement un PC physique que vous devez mettre à niveau à distance.

Il y a des étapes simples que nous pouvons effectuer pour préparer le système à la mise à niveau, et éventuellement effacer tout problème qui mettrait en danger une mise à jour réussie.



Mettre à jour le processus

Lorsque vous effectuez une mise à jour inconditionnelle (ce qui signifie «Mettez à jour tout»), Miam va chercher toutes les métadonnées des référentiels disponibles et calculer tous les packages à mettre à niveau contre le RPM base de données qui contient toutes les métadonnées sur les packages installés sur le système.

Le processus de mise à jour calcule également toutes les dépendances des packages améliorés, peut remplacer les anciens packages et supprimer les anciennes images du noyau en fonction de sa configuration. Le nombre d'images du noyau à conserver est définie dans le / etc / yum.confli Fichier de configuration, et est 3 par défaut:

installOnly_limit = 3


Après toutes les modifications nécessaires calculées, Miam Fournit une liste approfondie de tous les packages à mettre à niveau, supprimé ou installés pour les dépendances, de la même manière que lors de l'installation ou de la mise à niveau de packages spécifiques.

Dans une session de mise à jour interactive Miam fournira un résumé des packages à modifier, ainsi que le calcul sur la taille des données à télécharger pour la mise à niveau comme indiqué ci-dessous:

Résumé de la mise à jour interactive de YUM

Après avoir examiné les résultats, nous pouvons décider si nous commençons la mise à jour ou l'annuler. Comme Yum mettra à jour tout ce pour quoi il peut trouver des mises à jour, nous voulons peut-être supprimer les packages inutiles à l'avance. Nous pouvons également remarquer un package marqué pour la mise à jour que nous sommes verrouillés par la version avec ce besoin d'être exclu de la mise à niveau.

Après l'approbation, vous téléchargez tous les nouveaux packages et les installez / mettez-les à jour un par un. Une fois terminé, il vérifiera l'intégrité des packages installés / mis à jour, nettoyez les fichiers inutiles. Il fournit également des commentaires au cours du processus, fournissant une ligne de texte pour chaque étape, ainsi qu'un code de sortie qui fait allusion si la mise à niveau a réussi, ou si un problème survient. Il annulera également le processus de mise à jour si un problème augmente qui semble essentiel du point de vue cohérent du système - mais il y a des moments où il est déjà trop tard, donc empêcher la mise à jour des problèmes de se produire est une meilleure approche.

Espace disque

cache miam

À partir du processus décrit ci-dessus, nous pourrions deviner que nous avons besoin d'un espace disque pour le processus de mise à jour:

  • Les métadonnées de tous les référentiels configurés doivent être stockés jusqu'à ce que le calcul de tous les packages (et de leurs dépendances) soit mis à jour.
  • RPM Les packages qui constituent la mise à jour elle-même doivent être stockées localement jusqu'à installation correctement.

Ces données, appelées cache miam n'est nécessaire que pendant la mise à jour, mais peut occuper un espace de disque substantiel. L'emplacement par défaut pour ce cache est dans le / var / cache / yum annuaire. Inutile de dire que s'il n'y a pas assez d'espace pour stocker toutes les données nécessaires, le processus de mise à jour échouera. Certains téléchargements inachevés seront supprimés, mais tous les espaces peuvent être libérés, ce qui finit par avoir un système qui a échoué la mise à jour et avoir son volume contenant / var / cache presque plein.

De nombreuses installations stockent leur / var Le répertoire sur un volume dédié à la journalisation, car le lieu de défaut pour les fichiers de journaux est / var / log Sur la plupart des distributions, et la plupart des applications bien en train de se faire cesseront de travailler ou même de planter s'ils ne peuvent pas écrire leurs fichiers de journaux. Donc, remplir le volume auquel ils écrivent est un mauvaise chose.

Plus les packages doivent être mis à niveau et plus nous avons de référentiels, plus la mise à jour occupera d'espace. Pour calculer cet espace, de la mise à jour à la mise à jour est difficile, mais peut être testé avec la solution de run sèche décrite plus tard si nous avons une machine de test avec le contenu logiciel exact. Pour un exemple en temps réel, mise à jour de Rhel 7.1 à 7.5 (installation de bureau avec gnome) peut occuper 4 Go d'espace de cache, mais l'installation de quelques correctifs à un système qui n'est que d'un ou deux mois de date ne prendra que quelques Mo.

Pour vérifier la quantité d'espace que nous avons, nous pouvons utiliser le df commande:

# df -h / var / taille du système de fichiers utilisé Disponible Utiliser% monté sur / dev / mapper / vg_sys-var 6.0g 1.7G 4.4G 28% / var 
Copie


Dans l'exemple ci-dessus, nous avons 4.4 Go d'espace libre, ce qui sera suffisant étant donné que le serveur a été mis à jour il y a quelques mois seulement. Pour libérer de l'espace, une étape triviale serait de nettoyer le cache miam déjà stocké (peut-être à la dernière mise à jour). Pour vérifier la quantité d'espace que le cache occupe pour le moment, nous pouvons utiliser du:

# du -mcd 1 / var / cache / yum 1103 / var / cache / yum / x86_64 1103 / var / cache / yum 1103 total 
Copie


Les nombres ci-dessus sont en MB, donc le cache miam Dans cet exemple, prend environ 1 Go d'espace disque et occupe la majeure partie de l'espace sur le / var volume.



Effacer le cache

Nous pouvons effacer l'intégralité du cache avec la commande suivante:

miam nettoie tout

Mais comme Miam nous avertit dans la sortie de la commande ci-dessus sur les versions RHEL 7, il peut y avoir des données orphelines des référentiels supprimés ou désactivés, ce qui se produira très probablement après les urades de libération mineure, auquel cas nous pouvons effacer en toute sécurité les données à la main:

rm -rf / var / cache / yum / *

Nous pouvons obtenir plus d'espace pour la mise à jour en éliminant d'autres données stockées sur le volume, comme la compression / supprimer les anciens fichiers de journaux, le déplacement de fichiers volumineux vers d'autres volumes ou l'extension de la taille du volume.

Déplacer le cache

Travailler avec les possibilités de Miam, Si nous sommes vraiment bas sur l'espace disque, ne pouvons rien effacer plus loin et que nous ne pouvons pas ajouter plus d'espace au volume, nous pouvons déplacer l'emplacement du cache miam à un autre volume avec plus d'espace libre. Nous pouvons configurer l'emplacement du cache dans le Miam.confli Fichier de configuration mentionné ci-dessus. Considérez le paramètre par défaut:

cachedir = / var / cache / yum / $ basearch / $ releasever

En changeant le chemin avant $ Basearch La prochaine opération YUM fonctionnera avec la même structure de répertoire, mais sur un chemin différent - j'espère avec plus d'espace libre pour la mise à niveau. Nous pouvons également déplacer le cache vers un autre volume en déplaçant l'ensemble du répertoire:

mv / var / cache / yum / extend_data_volume /


Et créer un lien symbolique à l'emplacement d'origine qui pointe vers le nouvel endroit:

LN -S / EXTEND_DATA_VOLUME / YUM / VAR / CACHE / YUM


Il est sage de savoir que la mise à jour n'échouera pas sur une erreur triviale comme un espace disque faible. Sur un grand système, les systèmes système déploient des outils de surveillance comme Nagios qui peuvent signaler un espace disque faible sur toutes les machines, ce qui rend cette étape beaucoup moins longue et sujette à des erreurs.

Erreurs de réseau

S'il y a des problèmes de connectivité entre les référentiels et la machine effectuant la mise à jour, la mise à jour peut échouer. Cela ne peut se produire qu'aux métadonnées, ou à la nouvelle étape de téléchargement des RPM, et ne cassera pas le système. Vous pouvez recommencer le processus de mise à jour lorsque le problème du réseau est résolu.

D'un autre côté, si la mise à jour est initialisée à partir d'une session interactive, sur la panne de réseau, la connexion peut se casser, laissant la machine de mise à jour sans administration pour répondre aux questions Miam peut demander. Si l'étape d'installation / mise à jour du pack. Après reconnexion, le processus peut être suivi dans le / var / log / yum.enregistrer.



Run sèche

Mis à part les problèmes d'espace disque et de réseau insuffisants, la mise à jour dans de nombreux cas peut échouer sur les dépendances de package non résolues. Ceux-ci doivent être résolus avec des outils qui peuvent calculer et gérer les dépendances des packages, mais il serait utile de savoir qu'il y aura des problèmes avant la mise à jour réelle (et donc ne pas gaspiller le temps d'arrêt toujours trop court du système). Pour obtenir ces informations précieuses, nous pouvons exécuter le processus de mise à jour car il exécuterait la mise à jour réelle, mais arrêtez avant que tout réel package de téléchargement, d'installation ou de mise à jour ait eu lieu.

Autour de Redhat 6.6 Une nouvelle option a été introduite qui provoquera Miam Pour assumer «non» à chaque question qui se pose pendant la mise à jour - y compris l'approbation avant l'étape de manipulation du package réelle, et en conséquence, aucune interaction réelle n'est nécessaire d'exécuter une course sèche:

Yum Update - AssuMeno

Cela peut être l'outil idéal pour fournir une série sèche de la mise à jour à venir, y compris les packages à mettre à niveau, et toutes les erreurs ce qui peut se produire. Considérez le simple suivant frapper scénario:

#!/ bin / bash yum update --asumeno &> $ (hostname).Miam.dryrun.$ (date '+% y-% m-% d').sortir de la sortie $? 
Copie


Le script ci-dessus peut être exécuté automatiquement et fournira un rapport texte de l'exécution sèche, ainsi qu'un code de sortie global indiquant tout problème. La sortie n'a pas besoin d'être enregistrée sur le système de fichiers local. La cible de la redirection de sortie peut être un système de fichiers réseau, ou le rapport peut être publié sur un serveur de rapports central, peut être recueilli par d'autres scripts ou applications. Les rapports peuvent être publiés et distribués entre les autres services informatiques pour approbation, de cette façon, toutes les personnes impliquées peuvent voir exactement quels packages seront mis à jour et à quelle version.

La course à sec peut être prévue pour fonctionner sur un délai donné (peut-être la nuit pour avoir un impact moins sur les performances du système) avec cron, ou exécuté à partir d'une source centrale avec une configuration de marionnette. Le code de sortie peut également être stocké et traité par surveillance ou plain-pied, pour agréger les résultats possibles de la mise à niveau à venir avant de continuer.

Conclusion

Même avec un ou quelques ordinateurs, nous devons recueillir des informations avant de commencer une mise à jour de l'ensemble du système d'exploitation, juste pour être sûr. Un jour, il y aura un problème, et c'est beaucoup moins stressant si vous pouvez le résoudre avant d'avoir un impact sur le travail réel d'une machine donnée. À plus grande échelle, il n'est tout simplement pas possible de s'asseoir à côté de chaque serveur ou bureau et de le soutenir avec votre présence dans l'espoir que cela aidera la mise à jour à exécuter parfaitement.

En connaissant les étapes du processus de mise à jour, les pièges, ainsi que la solution pour eux sont essentiels pour les mises à jour réussies. Commencer la prochaine étape de mise à jour de votre infrastructure avec la confiance qu'il n'y aura aucun problème à le faire avec le style.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Fichiers de configuration Linux: 30 premiers
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Téléchargement Linux
  • Comment mettre à jour Firefox sur Linux
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Meilleure distribution Linux pour les développeurs
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?