Может ли dnf-automatic использовать несколько таймеров?

Вопрос или проблема

В те времена, когда мы использовали yum-cron вместо dnf-automatic, обновления пакетов применялись еженедельно для большинства пакетов, но ежечасно для критических обновлений безопасности. Я пытаюсь сделать что-то подобное с dnf-automatic, но в документации это особо не упоминается. Могу ли я добавить несколько секций [timer] в dnf-automatic.timer? Или есть другой способ это осуществить?

Ответ или решение

Возможность автоматического обновления пакетов на системах Linux значительно упрощает поддержание безопасности и актуальности системы. Когда вы пользовались yum-cron, вы могли настраивать его для выполнения обновлений на разных таймерах, что позволяло применять критически важные обновления безопасности с большей частотой по сравнению с обычными. С переходом на dnf-automatic в Fedora и других системах, основанных на RPM, возникает вопрос о том, возможно ли аналогичным образом управлять частотой выполнения обновлений.

Теория

dnf-automatic — это инструмент для автоматизации процесса обновления пакетов, который заменил yum-cron в более новых версиях систем Fedora и других дистрибутивах, использующих DNF. Он позволяет запускать автоматические проверки и установки обновлений без участия пользователя. Обычно для этого используется системный таймер systemd, который упрощает управление расписанием выполнения задач.

Одним из вопросов, которые часто вызывают замешательство, является возможность использования нескольких таймеров в dnf-automatic.timer для выполнения разных типов обновлений с разной частотой. В документации к dnf-automatic детально не описано использование нескольких таймеров, что может создать затруднения для администраторов, ищущих решение, аналогичное yum-cron.

Пример

Допустим, у вас есть задача — настроить dnf-automatic так, чтобы он выполнял обновления пакетов каждую неделю, но критически важные обновления безопасности применялись каждый час. В классическом сценарии yum-cron это решение могло бы быть реализовано использованием различных cron-заданий. Однако, с учетом особенностей systemd, конфигурация dnf-automatic требует иного подхода.

Применение

К сожалению, dnf-automatic.timer по умолчанию не поддерживает несколько секций [Timer] внутри одного файла таймера для разных расписаний. В systemd каждая задача, или таймер, должна иметь собственный файл конфигурации. Оптимальным решением в вашем случае будет создание нескольких таймеров, каждый из которых будет ссылается на один и тот же сервис dnf-automatic:

  1. Создайте два таймера — один для еженедельных обновлений, другой для часовых обновлений безопасности.

  2. Настройте первый таймер для выполнения стандартных обновлений:

    • Создайте файл /etc/systemd/system/dnf-automatic-weekly.timer с указанием расписания выполнения:

      [Unit]
      Description=Run dnf-automatic weekly
      
      [Timer]
      OnCalendar=weekly
      Persistent=true
      
      [Install]
      WantedBy=timers.target
  3. Настройте второй таймер для выполнения критических обновлений:

    • Создайте файл /etc/systemd/system/dnf-automatic-hourly.timer с указанием расписания выполнения:

      [Unit]
      Description=Run dnf-automatic hourly for critical updates
      
      [Timer]
      OnCalendar=hourly
      Persistent=true
      
      [Install]
      WantedBy=timers.target
  4. Настройте соответствующие сервисы: оба таймера могут ссылаться на один и тот же сервис dnf-automatic. Однако, для большей гибкости, вы можете настроить два разных сервиса, если захотите кастомизировать их поведение (например, использовать разные конфигурационные файлы).

  5. Активируйте таймеры:

    • Выполните команды для активации обоих таймеров:
      sudo systemctl enable --now dnf-automatic-weekly.timer
      sudo systemctl enable --now dnf-automatic-hourly.timer

Таким образом, используя подход с несколькими таймерами systemd, вы сможете гибко управлять расписанием автоматических обновлений пакетов, аналогично решению, доступному ранее через yum-cron. Это позволит вашей системе всегда оставаться в актуальном и безопасном состоянии, снижая возможные риски безопасности благодаря своевременному применению критических патчей.

Оцените материал
Добавить комментарий

Капча загружается...