Administrateur Linux - Mises à jour du système
Le système CentOS 7 peut être mis à jour de trois manières -
- Manually
- Automatically
- Mettre à jour manuellement pour les problèmes de sécurité majeurs et configurer les mises à jour automatiques
Dans un environnement de production, il est recommandé de mettre à jour manuellement les serveurs de production. Ou au moins, établissez un plan de mise à jour afin que l'administrateur puisse assurer les services essentiels aux opérations commerciales.
Il est plausible qu'une simple mise à jour de sécurité puisse entraîner des problèmes récursifs avec une application courante qui nécessite une mise à niveau et une reconfiguration par un administrateur. Alors, soyez fatigué de planifier des mises à jour automatiques en production avant de tester d'abord les serveurs de développement et les postes de travail.
Mettre à jour manuellement CentOS 7
Pour mettre à jour CentOS 7, nous voudrons nous familiariser avec la commande yum .yumest utilisé pour gérer les référentiels de paquets dans CentOS 7. yum est l'outil couramment utilisé pour -
- Mettre à jour le système Linux CentOS 7
- Rechercher des packages
- Installer des packages
- Détecter et installer les dépendances requises pour les packages
Afin d'utiliser yum pour les mises à jour, votre serveur CentOS devra être connecté à Internet. La plupart des configurations installeront un système de base, puis utiliseront yum pour interroger le référentiel CentOS principal pour des fonctionnalités supplémentaires dans les packages et appliquer les mises à jour du système.
Nous avons déjà utilisé yum pour installer quelques paquets. Lorsque vous utilisez yum, vous devrez toujours le faire en tant qu'utilisateur root. Ou un utilisateur avec un accès root. Alors recherchons et installons un éditeur de texte facile à utiliser appelé nano .
[root@centos rdc]# yum search nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.rackspace.com
* epel: mirror.chpc.utah.edu
* extras: repos.forethought.net
* updates: repos.forethought.net
======================================================================
N/S matched: nano
======================================================================
nano.x86_64 : A small text editor
nodejs-nano.noarch : Minimalistic couchdb driver for Node.js
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
Name and summary matches only, use "search all" for everything.
[root@centos rdc]#
Maintenant, installons l' éditeur de texte nano .
[root@centos rdc]# yum install nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.keystealth.org
* epel: pubmirror1.math.uh.edu
* extras: centos.den.host-engine.com
* updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch
Version Repository Size
================================================================================
Installing:
nano x86_64
2.3.1-10.el7 base 440 k
Transaction Summary
Install 1 Package
Total download size: 440 k
Installed size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm
| 440 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : nano-2.3.1-10.el7.x86_64
1/1
Verifying : nano-2.3.1-10.el7.x86_64
1/1
Installed:
nano.x86_64 0:2.3.1-10.el7
Complete!
[root@centos rdc]#
Nous avons installé l'éditeur de texte nano. Cette méthode, IMO, est beaucoup plus facile que de rechercher des utilitaires sur des sites Web et d'exécuter manuellement les programmes d'installation. De plus, les référentiels utilisent des signatures numériques pour valider les packages en s'assurant qu'ils proviennent d'une source fiable avec yum. Il appartient à l'administrateur de valider l'authenticité lors de l'approbation de nouveaux référentiels. C'est pourquoi il est considéré comme une bonne pratique de se lasser des référentiels tiers.
Yum peut également être utilisé pour supprimer un paquet.
[root@centos rdc]# yum remove nano
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
Maintenant, vérifions les mises à jour.
[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.keystealth.org
* epel: pubmirror1.math.uh.edu
* extras: centos.den.host-engine.com
* updates: repos.forethought.net
Updated Packages
NetworkManager.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-adsl.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-glib.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-libnm.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-team.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-tui.x86_64 1:1.4.0-17.el7_3 updates
NetworkManager-wifi.x86_64 1:1.4.0-17.el7_3 updates
audit.x86_64 2.6.5-3.el7_3.1 updates
audit-libs.x86_64 2.6.5-3.el7_3.1 updates
audit-libs-python.x86_64
Comme illustré, nous avons quelques dizaines de mises à jour en attente d'installation. En fait, il y a environ 100 mises à jour au total car nous n'avons pas encore configuré les mises à jour automatiques. Ainsi, installons toutes les mises à jour en attente.
[root@centos rdc]# yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.usc.edu
* epel: pubmirror1.math.uh.edu
* extras: repos.forethought.net
* updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-14.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-17.el7_3 will be an update
selinux-policy noarch 3.13.1102.el7_3.15 updates 414 k
selinux-policy-targeted noarch 3.13.1102.el7_3.15 updates 6.4 M
systemd x86_64 21930.el7_3.7 updates 5.2 M
systemd-libs x86_64 21930.el7_3.7 updates 369 k
systemd-python x86_64 21930.el7_3.7 updates 109 k
systemd-sysv x86_64 21930.el7_3.7 updates 63 k
tcsh x86_64 6.18.01-13.el7_3.1 updates 338 k
tzdata noarch 2017a1.el7 updates 443 k
tzdata-java noarch 2017a1.el7 updates 182 k
wpa_supplicant x86_64 1:2.021.el7_3 updates 788 k
Transaction Summary
===============================================================================
Install 2 Packages
Upgrade 68 Packages
Total size: 196 M
Total download size: 83 M
Is this ok [y/d/N]:
Après avoir appuyé sur la touche "y", la mise à jour de CentOS 7 commencera. Le processus général par lequel yum passe lors de la mise à jour est -
- Vérifie les packages actuels
- Recherche dans le référentiel des packages mis à jour
- Calcule les dépendances nécessaires pour les packages mis à jour
- Téléchargements mises à jour
- Installe les mises à jour
Maintenant, assurons-nous que notre système est à jour -
[root@centos rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* updates: mirror.compevo.com
[root@centos rdc]#
Comme vous pouvez le voir, aucune mise à jour n'est répertoriée.
Configurer les mises à jour automatiques pour YUM
Dans un environnement d'entreprise, comme mentionné précédemment, les mises à jour automatiques peuvent être ou non la méthode d'installation préférée. Passons en revue les étapes de configuration des mises à jour automatiques avec yum.
Tout d'abord, nous installons un package appelé yum-cron .
[root@centos rdc]# yum -y install yum-cron
Install 1 Package
Total download size: 61 k
Installed size: 51 k
Downloading packages:
yum-cron-3.4.3-150.el7.centos.noarch.rpm
| 61 kB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : yum-cron-3.4.3-150.el7.centos.noarch
1/1
Verifying : yum-cron-3.4.3-150.el7.centos.noarch
1/1
Installed:
yum-cron.noarch 0:3.4.3-150.el7.centos
Complete!
[root@centos rdc]#
Par défaut, yum-cron ne téléchargera que les mises à jour et ne les installera pas. L'installation automatique des mises à jour appartient à l'administrateur. La plus grande mise en garde est: certaines mises à jour nécessiteront un redémarrage du système. En outre, certaines mises à jour peuvent nécessiter un changement de configuration avant que les services ne soient à nouveau opérationnels.
La mise à jour des dépendances peut éventuellement créer un problème récursif dans la situation suivante -
Une mise à jour est recommandée par yum pour une certaine bibliothèque
La bibliothèque ne prend en charge que Apache Server 2.4, mais nous avons le serveur 2.3
Notre site de commerce repose sur une certaine version de PHP
La nouvelle version d'Apache installée pour la bibliothèque nécessite une mise à niveau de PHP
Nos applications Web de production n'ont pas encore été testées avec la nouvelle version PHP
Yum peut continuer et mettre à jour automatiquement Apache et PHP sans préavis, sauf s'il est configuré pour ne pas le faire.
Si les 5 scénarios se déroulent, cela peut entraîner n'importe quoi, d'un gros mal de tête le matin à un possible compromis de sécurité exposant les données de l'utilisateur. Bien que l'exemple susmentionné soit une sorte de tempête parfaite, nous ne voulons jamais qu'un tel scénario se déroule.
Il appartient à l'administrateur d'accéder aux scénarios possibles de perte de revenus potentielle en raison du temps nécessaire pour restaurer les services en raison de temps d'arrêt possibles dus aux redémarrages et aux reconfigurations des mises à jour. Cette pratique n'est peut-être pas assez conservatrice pour, par exemple, un site de commerce électronique de plusieurs millions de dollars par jour avec des millions de clients.
Configurons maintenant yum-cron pour installer automatiquement les mises à jour du système.
[root@centos rdc]# vim /etc/yum/yum-cron.conf
# Whether updates should be applied when they are available. Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes
Nous voulons changer apply_updates = no en apply_updates = yes . Configurons maintenant l'intervalle de mise à jour pour yum-cron .
Encore une fois, utiliser ou non des mises à jour automatiques et installer des mises à jour à la demande peut être une arme à double tranchant et doit être pris en compte par un administrateur pour chaque situation unique.