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 .

[[email protected] 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.
 
[[email protected] rdc]#

Maintenant, installons l' éditeur de texte nano .

[[email protected] 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!

[[email protected] 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.

[[email protected] 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.

[[email protected] 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.

[[email protected] 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 -

[[email protected] rdc]# yum list updates 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * updates: mirror.compevo.com

[[email protected] 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 .

[[email protected] 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!

[[email protected] 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.

[[email protected] 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.