Автоматически применять обновления с помощью dnf-automatic
Включите автоматические обновления в RHEL, AlmaLinux и Rocky Linux
Регулярное применение обновлений должно быть главным приоритетом в повседневных задачах системного администратора. Работать без обновлений системы в течение длительного времени довольно рискованно. Есть много способов исправить ваши системы Linux. Сегодня мы научимся автоматически применять обновления с помощью dnf-automatic
в RHEL и его клонах, таких как AlmaLinux и Rocky Linux.
Что такое dnf-автоматический?
dnf-automatic
— это альтернатива команде dnf update
, которую можно выполнять автоматически и регулярно с помощью таймеров systemd, заданий cron и т.п.
Он синхронизирует метаданные пакета по мере необходимости, а затем проверяет наличие обновлений, доступных для ваших систем на базе RHEL. В зависимости от настроек файла конфигурации команда dnf-automatic
либо загружает обновления пакетов, либо загружает и устанавливает пакеты, либо просто завершает работу.
Функция dnf-automatic обычно контролируется файлом конфигурации (dnf-automatic.timer
) или таймерами для конкретной функции, как указано ниже.
dnf-automatic-notifyonly
— уведомляет только о доступности обновлений.dnf-automatic-download
— только загружает обновления, но не устанавливает их.dnf-automatic-install
— автоматически загружает и устанавливает обновления пакетов.
Вы можете выбрать любой, который соответствует вашим требованиям.
Обратите внимание, что единицы таймера, специфичные для конкретной функции, переопределяют настройки файла конфигурации по умолчанию, то есть dnf-automatic.timer
.
Установить dnf-автоматически
dnf-automatic доступен в репозиториях RHEL и его клонов по умолчанию.
Чтобы установить dnf-automatic в RHEL, Fedora, CentOS Stream, AlmaLinux и Rocky Linux, запустите:
sudo dnf install dnf-automatic
Автоматически применять обновления с помощью dnf-automatic
Отредактируйте файл конфигурации dnf-automatic по умолчанию, используя ваш любимый редактор:
sudo nano /etc/dnf/automatic.conf
И настройте параметры в соответствии с вашими требованиями. Три важных параметра, которые вам следует настроить здесь, приведены ниже:
upgrade_type = default
[...]
download_updates = yes
[...]
apply_updates = no
[...]
Автоматически применять обновления с помощью dnf-automatic
Здесь,
upgrade_type
— определяет, какой тип обновления следует выполнить. Он принимает два значения. Это «default
» и «security
». Если установлено значение «default
», будут применены все обновления. Если установлено значение «security
», будут применяться только обновления безопасности. По умолчанию применяются все обновления.download_updates
— определяет, следует ли загружать обновления, когда они доступны. Если установлено значение «да
», обновления будут загружены. Если установлено значение «no
», обновления не будут загружены. Значение по умолчанию —да
.apply_updates
— определяет, следует ли применять обновления, когда они доступны. Он принимает два значения. Если установлено значение «да», обновления будут применяться по мере их доступности. Если установлено значение «нет», обновления не будут применяться. Значение по умолчанию —no
.
Согласно приведенной выше конфигурации, dnf автоматически загрузит все обновления, но не установит их. Если вы хотите применять обновления автоматически, просто установите для параметра apply-updates
значение yes
. По умолчанию опция автоматического обновления отключена.
Также доступно еще несколько настроек, но они для меня менее важны. Вы можете прочитать краткое описание каждого параметра в файле конфигурации, чтобы узнать, для чего он нужен.
После настройки настроек включите блок таймера:
sudo systemctl enable --now dnf-automatic.timer
Вот и все. Теперь обновления загружаются и устанавливаются (если они включены) автоматически, когда они доступны.
Используйте таймеры для конкретных функций
Как уже говорилось, мы можем использовать таймеры для конкретных функций, чтобы активировать определенное действие.
Например, вы можете включить dnf-automatic-notifyonly.timer
, чтобы получать уведомления только о доступных обновлениях.
sudo systemctl enable --now dnf-automatic-notifyonly.timer
При использовании специального таймера он отменяет настройки файла конфигурации по умолчанию.
А как насчет RHEL 7/CentOS 7 и более старых версий?
Версии RHEL 7.x и CentOS 7.x по-прежнему широко используются. Если вы используете версию RHEL/CentOS 7.x, вы можете использовать yum-cron
, чтобы включить автоматические обновления.
Чтобы установить yum-cron в RHEL 7.x и CentOS 7.x, запустите:
sudo yum install yum-cron
После установки yum-cron отредактируйте файл конфигурации по умолчанию /etc/yum/yum-cron.conf
:
sudo nano /etc/yum/yum-cron.conf
Отрегулируйте и установите конфигурации по мере необходимости:
[commands]
What kind of update to use:
default = yum upgrade
security = yum --security upgrade
security-severity:Critical = yum --sec-severity=Critical upgrade
minimal = yum --bugfix update-minimal
minimal-security = yum --security update-minimal
minimal-security-severity:Critical = --sec-severity=Critical update-minimal
update_cmd = default
Whether a message should be emitted when updates are available,
were downloaded, or applied.
update_messages = yes
Whether updates should be downloaded when they are available.
download_updates = yes
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
Maximum amout of time to randomly sleep, in minutes. The program
will sleep for a random amount of time between 0 and random_sleep
minutes before running. This is useful for e.g. staggering the
times that multiple systems will access update servers. If
random_sleep is 0 or negative, the program will run immediately.
6*60 = 360
random_sleep = 30
Сохраните файл и закройте его.
Наконец, включите службу, чтобы применить настройки:
sudo systemctl enable --now yum-cron
Заключение
В этом кратком руководстве мы обсудили, как включить автоматические обновления в RHEL, CentOS, AlmaLinux и Rocky Linux. Поддержание актуальности серверов Linux — очень важная задача администратора Linux. К счастью, dnf-automatic
и yum-cron
сделали эту работу еще проще.
Ресурс:
- Официальная документация DNF Auto
Связанное чтение:
- Автоматическая установка обновлений и исправлений безопасности в Ubuntu