Главная
» LINUX
»
Как настроить автоматическое обновление Debian в режиме без графического интерфейса с помощью Unattended-Upgrades
Как настроить автоматическое обновление Debian в режиме без графического интерфейса с помощью Unattended-Upgrades
Что делает unattended-upgrades на безмониторном сервере Debian?
unattended-upgradesЭто пакет Debian для автоматической загрузки и установки выбранных обновлений APT без интерактивного входа в систему. На сервере без графического интерфейса это полезно для обеспечения безопасности, когда нет доступа к рабочему столу и никто не должен запускать его apt upgradeежедневно.
По состоянию на октябрь 2026 года Debian 13 «trixie» является стабильным релизом Debian, а стабильный unattended-upgradesпакет имеет версию 2.12. Пакет предназначен для обычных обновлений пакетов, особенно обновлений безопасности и стабильных обновлений. Он не заменяет отдельный, плановый процесс обновления с одного основного релиза Debian на другой.
Практическая модель проста: механизм APT периодически обновляет индексы пакетов, apt-daily-upgrade.serviceзапускает бэкенд автоматического обновления по расписанию, а ваша политика определяет, какие источники пакетов разрешены. Debian записывает результат в лог /var/log/unattended-upgrades/.
Повторная установка пакета безопасна: APT просто сообщит, что он уже установлен, если на хосте он уже есть. Debian описывает этот пакет как автоматический установщик обновлений безопасности и других обновлений, выбираемых политикой.
Пример отображения интерфейса терминала для автоматической установки обновлений. Названия репозиториев и количество пакетов различаются в зависимости от версии Debian и хоста.
При работе с парком образов не следует предполагать, что все образы имеют одинаковое состояние по умолчанию. Некоторые установки Debian уже включают автоматическое обновление; другие — нет, и существующая конфигурация может быть отключена. После установки проверьте действующую конфигурацию, а не предполагайте, что наличие пакета означает, что нужная вам политика активна.
2. Включите периодическое обновление списка пакетов и запуск в автоматическом режиме.
В файле README исходного кода Debian указано, что для ручной настройки необходимы следующие два значения периодической нагрузки APT:
Не следует воспринимать это как обещание, что задание будет запускаться ровно в полночь каждый день. В системах Debian на основе systemd APT использует таймеры и случайное планирование. Для оперативной работы проверяйте фактическое состояние таймера и следующий триггер на хосте, а не разрабатывайте систему мониторинга, основанную на предполагаемом времени.
3. Определите, какие репозитории могут автоматически обновлять пакеты.
Ключевая политика находится в более Unattended-Upgrade::Origins-Patternстарой Allowed-Originsформе. В документации Debian 2.12 рекомендуется создать локальный фрагмент APT, который сортируется после упакованного 50unattended-upgradesфайла, например:
Это предпочтительнее, чем постоянное редактирование поставляемого файла, поскольку обновления пакетов могут заменить или конфликтовать с конфигурацией, управляемой поставщиком. Перед написанием шаблонов проверьте метаданные выпуска, которые фактически видит APT:
apt-cache policy
Для большинства серверов без графического интерфейса консервативная политика заключается в том, чтобы ограничивать автоматические обновления только обычными стабильными и безопасными каналами Debian. Точные схемы могут различаться в зависимости от структуры вашего репозитория, зеркал, сторонних поставщиков и правил закрепления обновлений, поэтому рассматривайте их apt-cache policyкак источник достоверной информации в каждой конкретной среде.
Пример представления редактора политик. Сопоставляйте источники с репозиториями, указанными политикой apt-cache на вашем сервере, вместо того, чтобы слепо копировать метки.
Дополнительные элементы управления, о которых стоит знать.
Конфигурация версии 2.12 поддерживает черные и белые списки пакетов, автоматическую перезагрузку, отчеты по почте, удаление неиспользуемых зависимостей, ограничения пропускной способности, ограничения по дням обновления и вывод syslog. Некоторые параметры особенно актуальны на удаленных серверах:
Настраивайте почту только в том случае, если на машине работает почтовый транспорт. Если вы включите автоматическую перезагрузку, поведение Debian по умолчанию будет иметь важное значение: если Automatic-Rebootзначение равно true и /var/run/reboot-requiredсуществует, хост может перезагрузиться без подтверждения. Вы можете настроить Unattended-Upgrade::Automatic-Reboot-Timeпланирование этой перезагрузки на период технического обслуживания.
Для многих производственных систем отключение автоматической перезагрузки является более безопасным вариантом, если только служба не является резервной, не определены окна технического обслуживания и не автоматизированы проверки работоспособности после перезагрузки.
4. Проверьте таймеры systemd и проведите тест на работоспособность (без запуска программы).
В обычной установке Debian на основе systemd проверяйте таймеры APT, а не ищите вымышленный unattended-upgrades.timerмодуль:
systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers apt-daily.timer apt-daily-upgrade.timer
apt-daily.timerЭтот параметр связан с обычной загрузкой/индексированием пакетов, а другой apt-daily-upgrade.timerзапускает путь службы обновления/очистки, используемый при автоматическом обновлении.
Статус таймера Systemd для ежедневной работы APT. Указанные даты являются иллюстративными; используйте systemctl list-timers для получения информации о фактическом следующем запуске на вашем хосте.
Далее протестируйте политику, не меняя пакеты:
sudo unattended-upgrade --debug --dry-run
Это наиболее полезная предварительная проверка, поскольку она оценивает реальную конфигурацию APT и записывает отладочные данные. Просмотрите вывод на предмет пакетов, которые могут быть выбраны или заблокированы, неожиданных источников сторонних разработчиков, проблем с зависимостями и запросов к конфигурационным файлам.
Если в тестовом режиме ничего не выбрано, это вполне нормально, если сервер обновлен. Убедитесь, что действительно есть ожидающие обновления apt list --upgradable, а затем сравните их источники и политику с настроенными вами шаблонами.
5. Контролируйте автоматические обновления и обрабатывайте перезагрузки преднамеренно.
Основной журнал активности пакета и вывод команды dpkg записываются в следующую директорию:
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"
test -f /var/run/reboot-required && cat /var/run/reboot-required
Для одной домашней лабораторной машины периодического просмотра журналов может быть достаточно. Для корпоративных систем следует отправлять сообщения о сбоях в центральный мониторинг или syslog, чтобы скрытые ошибки репозитория, переполнение файловой системы, нарушение зависимостей или прерывание процесса dpkg не оставались незамеченными.
Справочные параметры для стандартных политик сервера
Сценарий
Политика
Оперативная записка
Сервер, ориентированный на безопасность
Разрешите обновления безопасности и стабильные обновления Debian; оставьте перезагрузку ручной.
Хороший вариант по умолчанию, когда отключение электроэнергии обходится дороже, чем отложенная перезагрузка.
Без сохранения состояния или резервный узел
Разрешите обновления и запланированную автоматическую перезагрузку.
В сочетании с проверками состояния оборудования и сливом воды из балансировочного устройства
Устройство, чувствительное к ядру
Используйте черный список пакетов только при наличии документированной процедуры обработки исключений.
Внесение в черный список может привести к тому, что известные уязвимости останутся неустраненными.
Сервер с репозиторием поставщика
Не разрешайте использование ресурсов поставщика до тех пор, пока не будет пересмотрена его политика обновлений.
В первую очередь проверьте условия подписания, политику поддержки и требования к откату.
Краткий справочник по устранению неполадок
Таймер активен, но пакеты не установлены.
Проверьте наличие ожидающих обновлений, соответствие источника репозитория разрешенным параметрам вашей политики, а также наличие ограничений черного списка или зависимостей, препятствующих выбору. Запустите проверку sudo unattended-upgrade --debug --dry-runдля подтверждения, а не меняйте политику случайным образом.
Сервер ожидает завершения настройки пакета.
unattended-upgradesЭта функция предназначена для предотвращения обновлений, требующих неразрешенных запросов конфигурации dpkg. Если обновление пакета неоднократно задерживается, изучите журнал и решите, следует ли обрабатывать решение по конфигурационному файлу вручную.
Обновления никогда не запускаются после клонирования образа виртуальной машины.
Убедитесь, что таймеры включены и активны, затем проверьте их apt-config dump. В эталонных образах часто содержатся локальные фрагменты APT, маскирование или переопределения политик, отличающиеся от значений по умолчанию в пакете.
Вам необходимо отключить автоматические обновления.
Используйте поддерживаемый Debian путь переконфигурации:
sudo dpkg-reconfigure -plow unattended-upgrades
Отключение пакета не заменяет обычное управление обновлениями; оно просто возвращает ответственность за это вашему процессу ручной или внешней оркестрации.
Контрольный список окончательной проверки
unattended-upgradesустанавливается из доверенного репозитория Debian.
Включено периодическое обновление списка пакетов APT и автоматическое обновление.
Локальная политика хранится в файле переопределения, который будет загружен позже, например, в файле 52unattended-upgrades-local.
Допустимые источники были проверены по apt-cache policy.