Автоматические обновления в CentOS 8 — настройка dnf-automatic и Cockpit

Обновления безопасности важны для защиты систем. Рекомендуется применять обновления в течение 30 дней после выхода патчей. В CentOS 8 есть два основных способа включить автоматические обновления: консольный dnf-automatic и веб-интерфейс Cockpit. В этой статье — пошаговая инструкция, рекомендации по выбору режима и чек-листы для системных администраторов.
Зачем включать автоматические обновления
Коротко: они уменьшают окно уязвимости и снижают ручную рутину. Определения:
- dnf-automatic — системный пакет, который предоставляет systemd-таймеры для автоматической загрузки/установки обновлений.
- Cockpit — веб-интерфейс для управления сервером, умеет включать автоматические обновления через dnf-automatic.
Важно: автоматические обновления экономят время, но несут риск — несовместимый патч может сломать сервис. Поэтому для критичных сервисов рекомендуются тестовые среда, резервные копии и уведомления.
Требования и подготовка
- Доступ root или привилегии sudo.
- Активный репозиторий BaseOS/AppStream (dnf-automatic доступен из BaseOS).
- Резервное копирование конфигураций и данных перед включением автоматической установки.
- Убедитесь, что сервер может отправлять почту или выводить MOTD для уведомлений.
Настройка автоматических обновлений с помощью dnf-automatic
dnf-automatic предоставляет три таймера systemd, каждый с разной логикой:
- dnf-automatic-download.timer — только загрузка пакетов
- dnf-automatic-install.timer — загрузка и автоматическая установка
- dnf-automatic-notifyonly.timer — только уведомления (через настроенный эмиттер)
Установка пакета:
sudo dnf install dnf-automaticФайлы конфигурации находятся в /etc/dnf/automatic.conf. Откройте и отредактируйте файл:
cd /etc/dnf/
vim automatic.confВ секции [commands] задайте желаемый тип обновлений (upgrade_type):
[commands]
upgrade_type = default
download_updates = yesОпции:
- default — обновлять все пакеты
- security — обновлять только пакеты, связанные с безопасностью
В секции [emitters] можно включить отображение статистики в MOTD и задать имя системы:
[emitters]
system_name = my-centos8-host
emit_via = motdemit_via поддерживает: stdio (по умолчанию), motd, email. Если выбираете email — настройте секцию [email]:
[email]
email_from = admin@example.com
email_to = root
email_host = localhostСохраните изменения.
Включение таймера для автоматической загрузки
Чтобы автоматически скачивать обновления и не устанавливать их сразу:
sudo systemctl enable --now dnf-automatic.timerПроверить список таймеров:
sudo systemctl list-timers *dnf-*В списке будут dnf-makecache.timer (обновление кеша) и dnf-automatic.timer (скачивание обновлений).

После этого при каждом логине вы увидите сводку скачанных обновлений через MOTD.

Включение таймера для автоматической установки
Чтобы автоматически устанавливать обновления (более рисково):
sudo systemctl enable --now dnf-automatic-install.timerПроверьте работу таймера:
sudo systemctl list-timers *dnf-*Вы увидите dnf-automatic-install.timer в списке. После включения обновления будут не только скачиваться, но и устанавливаться автоматически.

Настройка автоматических обновлений через Cockpit
Cockpit предоставляет удобный веб-интерфейс для настройки автоматических обновлений.
- Откройте браузер и перейдите по адресу сервера с портом 9090, например: https://10.5.5.70:9090/
- Авторизуйтесь под учётной записью с правами администратора.
- В меню выберите «Обновления ПО» (Software Updates) и включите параметр автоматических обновлений.
При включении Cockpit предложит установить dnf-automatic — нажмите Install.

После установки выберите тип обновлений и время выполнения (по расписанию). Таймеры dnf-makecache и dnf-automatic-install появятся в списке служб Cockpit → Services → Timers.



Как выбрать режим: скачать или установить автоматически
Модель решения (эвристика):
- Если у вас критичные сервисы — выбирайте download-only и тестируйте обновления в staging перед установкой в проде.
- Если инстансы легко восстанавливать (ephemeral), и вы хотите минимизировать окно уязвимости — включайте автоматическую установку.
- Всегда включайте уведомления (motd или email), чтобы получать отчёты.
Проверка и устранение неполадок
Просмотр логов службы dnf-automatic:
sudo journalctl -u dnf-automatic.service --no-pager
sudo journalctl -u dnf-automatic-install.service --no-pagerПроверка последних установленных пакетов:
sudo dnf historyЕсли после обновления сервис не запустился — откатите пакет через dnf history rollback или восстановите из бэкапа. Всегда проверяйте зависимости и конфликты перед массовыми установками.
Риски и рекомендации по безопасности
- Тестируйте обновления в staging перед продакшеном.
- Держите регулярные резервные копии конфигураций и данных.
- Используйте notify_via=email при наличии надежного почтового хоста для оперативных оповещений.
- Не включайте автоматическую установку без плана отката для критичных сервисов.
Чек-лист для системного администратора
- Установлен dnf-automatic и/или Cockpit
- Настроен emit_via (motd или email)
- Выбран upgrade_type: security или default
- Созданы резервные копии конфигураций и данных
- Проведено тестирование обновлений в staging
- Мониторинг и оповещения настроены
Критерии приёмки
- Таймер dnf-automatic.timer или dnf-automatic-install.timer активен и запускается при загрузке.
- При логине отображается MOTD с информацией об обновлениях (если emit_via=motd).
- При emit_via=email — письма приходят на указанный email.
- Обновления соответствуют выбранному upgrade_type.
Когда автоматические обновления не подходят
- Нельзя прерывать или автоматически изменять продакшен-сервисы без тестирования.
- Сложные стековые приложения с нестандартными зависимостями требуют ручной проверки.
- Если политика компании запрещает автоматические изменения в серверах.
Быстрые команды и шаблоны
Включить скачивание:
sudo systemctl enable --now dnf-automatic.timerВключить установку:
sudo systemctl enable --now dnf-automatic-install.timerОтключить таймер:
sudo systemctl disable --now dnf-automatic-install.timerПосмотреть статус таймеров:
sudo systemctl list-timers *dnf-*Проверить логи:
sudo journalctl -u dnf-automatic.serviceИтог
Автоматические обновления в CentOS 8 можно безопасно настроить через dnf-automatic или Cockpit. Для production-сред придерживайтесь стратегии «скачать — протестировать — установить» и обеспечьте резервное копирование и уведомления. Для менее критичных систем допустима прямая автоматическая установка.
Ссылки
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента