Préparation à l'application de mises à jour sur Red Hat Linux
- 2914
- 127
- Victor Charpentier
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:
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?
- « Comment configurer Apache Webserver Proxy devant Apache Tomcat sur Red Hat Linux
- Comment créer un lanceur de raccourci de bureau sur Ubuntu 18.10 seiches cosmiques Linux »