Система 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 .
Опять же, использование автоматических обновлений и установка обновлений по требованию может быть обоюдоострым мечом и должно рассматриваться администратором для каждой уникальной ситуации.