Учебники

Linux Admin — Обновления системы

Система CentOS 7 может быть обновлена ​​тремя способами:

  • Вручную
  • Автоматически
  • Обновление вручную для серьезных проблем безопасности и настройка автоматических обновлений

В производственной среде рекомендуется обновлять вручную для производственных серверов. Или, по крайней мере, установить план обновлений, чтобы администратор мог обеспечить услуги, жизненно важные для бизнес-операций.

Вероятно, простое обновление для системы безопасности может вызвать рекурсивные проблемы с обычным приложением, которое требует обновления и перенастройки администратором. Итак, будьте осторожны с планированием автоматических обновлений в производственном процессе, прежде чем проводить тестирование на серверах разработки и настольных ПК.

Обновление CentOS 7 вручную

Чтобы обновить CentOS 7, мы хотим ознакомиться с командой yum . yum используется для работы с репозиториями пакетов в CentOS 7. yum — это инструмент, который обычно используется для:

  • Обновите систему CentOS 7 Linux
  • Поиск пакетов
  • Установить пакеты
  • Определите и установите необходимые зависимости для пакетов

Чтобы использовать yum для обновлений, ваш сервер CentOS должен быть подключен к Интернету. Большинство конфигураций устанавливают базовую систему, а затем используют yum для запроса основного репозитория CentOS о дополнительных функциях в пакетах и ​​применения системных обновлений.

Мы уже использовали yum для установки нескольких пакетов. При использовании yum вы всегда должны будете делать это как пользователь root. Или пользователь с root-доступом. Итак, давайте найдем и установим простой в использовании текстовый редактор под названием 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]#

Теперь давайте установим текстовый редактор 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]#

Мы установили нано текстовый редактор. Этот метод, IMO, намного проще, чем поиск утилит на веб-сайтах и ​​запуск установщиков вручную. Кроме того, репозитории используют цифровые подписи для проверки пакетов, гарантирующих, что они поступают из надежного источника с yum. Администратор должен проверить подлинность, доверяя новым репозиториям. Вот почему считается хорошей практикой утомлять сторонние репозитории.

Yum также может быть использован для удаления пакета.

[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 

Теперь давайте проверим наличие обновлений.

[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

Как показано, у нас есть несколько десятков обновлений, ожидающих установки. На самом деле, существует около 100 обновлений, поскольку мы еще не настроили автоматические обновления. Итак, давайте установим все ожидающие обновления.

[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]:

После нажатия клавиши «y» начнется обновление CentOS 7. Общий процесс, через который проходит yum при обновлении:

  • Проверяет текущие пакеты
  • Смотрит в хранилище обновленные пакеты
  • Вычисляет зависимости, необходимые для обновленных пакетов
  • Обновления загрузок
  • Устанавливает обновления

Теперь давайте удостоверимся, что наша система обновлена ​​-

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

[root@centos rdc]#

Как видите, в списке нет обновлений.

Настройка автоматического обновления для YUM

В корпоративной среде, как упоминалось ранее, автоматические обновления могут быть или не быть предпочтительным методом установки. Давайте рассмотрим шаги по настройке автоматических обновлений с помощью yum.

Сначала мы устанавливаем пакет с именем 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]#  

По умолчанию yum-cron загружает только обновления и не устанавливает их. Независимо от того, устанавливать ли обновления автоматически — администратор. Самое большое предупреждение: некоторые обновления потребуют перезагрузки системы. Кроме того, некоторые обновления могут потребовать изменения конфигурации, прежде чем сервисы снова будут работать.

Обновление зависимостей может создать рекурсивную проблему в следующей ситуации:

  • Yum рекомендует обновление для определенной библиотеки

  • Библиотека поддерживает только Apache Server 2.4, но у нас есть сервер 2.3

  • Наш коммерческий сайт использует определенную версию PHP

  • Новая версия Apache, установленная для библиотеки, требует обновления PHP

  • Наши производственные веб-приложения еще не были протестированы с более новой версией PHP

Yum рекомендует обновление для определенной библиотеки

Библиотека поддерживает только Apache Server 2.4, но у нас есть сервер 2.3

Наш коммерческий сайт использует определенную версию PHP

Новая версия Apache, установленная для библиотеки, требует обновления PHP

Наши производственные веб-приложения еще не были протестированы с более новой версией PHP

Yum может выполнить автоматическое обновление Apache и PHP без предварительного уведомления, если не настроено.

Если все 5 сценариев разыгрываются, это может привести к чему угодно — от сильной головной боли по утрам до возможного компрометации безопасности, обличающей пользовательские данные. Хотя вышеупомянутый пример — своего рода идеальный шторм, мы никогда не хотим, чтобы такой сценарий развивался.

Администратор должен получить доступ к возможным сценариям возможной потери дохода в течение времени, необходимого для восстановления услуг из-за возможного простоя из-за перезагрузок и переконфигурирования обновлений. Эта практика может быть недостаточно консервативной, скажем, для сайта электронной коммерции с многомиллионным оборотом в день, где работают миллионы клиентов.

Теперь давайте настроим yum-cron для автоматической установки обновлений системы.

[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

Мы хотим изменить apply_updates = no на apply_updates = yes . Теперь давайте настроим интервал обновления для yum-cron .

Опять же, использование автоматических обновлений и установка обновлений по требованию может быть обоюдоострым мечом и должно рассматриваться администратором для каждой уникальной ситуации.