Администратор Linux - Обновления системы
Систему CentOS 7 можно обновить тремя способами:
- Manually
- Automatically
- Обновите вручную для серьезных проблем с безопасностью и настройте автоматические обновления
В производственной среде рекомендуется обновлять производственные серверы вручную. Или, по крайней мере, составьте план обновлений, чтобы администратор мог гарантировать услуги, жизненно важные для бизнес-операций.
Вполне вероятно, что простое обновление безопасности может вызвать рекурсивные проблемы с обычным приложением, которое требует обновления и перенастройки со стороны администратора. Итак, не стоит планировать автоматические обновления в производственной среде перед тестированием на серверах разработки и настольных компьютерах.
Обновите 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]#
Мы установили текстовый редактор nano. Этот метод, 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 и 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 .
Опять же, использование автоматических обновлений и установка обновлений по запросу - это палка о двух концах, и администратор должен учитывать ее в каждой уникальной ситуации.