неработоспособная автоматическая установка обновлений

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

У меня есть

Добро пожаловать в Ubuntu 16.04.5 LTS (GNU/Linux 4.15.0-24-generic x86_64)

15 пакетов можно обновить.
7 обновлений являются обновлениями безопасности.

Я наблюдал это несколько недель и пробовал множество способов, чтобы исправить это, но не могу заставить его работать. Unattended-upgrades не обновляет мой сервер.

Я установил

# apt-get install unattended-upgrades
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
unattended-upgrades уже является самой новой версией (0.90ubuntu0.9).
0 обновлено, 0 ново установлено, 0 для удаления и 9 не обновлено.

# apt-get install apt-listchanges
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
apt-listchanges уже является самой новой версией (2.85.14ubuntu1).
0 обновлено, 0 ново установлено, 0 для удаления и 9 не обновлено.

Это мой /etc/apt/apt.conf.d/10periodic

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Это мой /etc/apt/apt.conf.d/50unattended-upgrades

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        "${distro_id}ESM:${distro_codename}";
        "${distro_id}:${distro_codename}-updates";
};

Unattended-Upgrade::Package-Blacklist {
        "open-vm-tools";
};

Unattended-Upgrade::AutoFixInterruptedDpkg "true";
Unattended-Upgrade::MinimalSteps "true";
Unattended-Upgrade::InstallOnShutdown "true";
Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailOnlyOnError "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "07:00";
Acquire::http::Dl-Limit "0";

Это то, что у меня есть в журнале /var/log/unattended-upgrades/unattended-upgrades.log

INFO Первоначально черный список пакетов: open-vm-tools
INFO Первоначально белый список пакетов:
INFO Запуск скрипта неавтоматического обновления
INFO Разрешенные источники: ['o=Ubuntu,a=xenial', 'o=Ubuntu,a=xenial-security', 'o=UbuntuESM,a=xenial', 'o=Ubuntu,a=xenial-updates']
INFO Первоначально черный список пакетов: open-vm-tools
INFO Первоначально белый список пакетов:
INFO Запуск скрипта неавтоматического обновления
INFO Разрешенные источники: ['o=Ubuntu,a=xenial', 'o=Ubuntu,a=xenial-security', 'o=UbuntuESM,a=xenial', 'o=Ubuntu,a=xenial-updates']

Кто-нибудь знает, что не так?

В отличие от ответа выше, у меня: “/etc/apt/apt.conf.d/50unattended-upgradesбыло:

Unattended-Upgrade::InstallOnShutdown "false";

Тем не менее, я по-прежнему видел:

Добро пожаловать в Ubuntu 18.04.3 LTS (GNU/Linux [...] x86_64)
[...]
29 пакетов можно обновить.
0 обновлений являются обновлениями безопасности.

Так почему же эти 29 пакетов не были обновлены?

Как оказалось, “/etc/apt/apt.conf.d/50unattended-upgrades” также содержал это заявление:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Расширенное обслуживание безопасности; не обязательно существует для
        // каждого выпуска, и эта система может не иметь его установленным, но если
        // доступно, политика обновлений такова, что unattended-upgrades
        // также должен устанавливать откуда-то еще по умолчанию.
        "${distro_id}ESM:${distro_codename}";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

Ключевым моментом для исправления для меня было просто раскомментировать эту строку:

//      "${distro_id}:${distro_codename}-updates";

Если это все еще не работает после следования этому ответу от @cuedee, вы можете попробовать выполнить пробный запуск и проверить, получите ли вы какое-либо сообщение об ошибке или предупреждение.

sudo unattended-upgrades -v -d

В моем случае вывод объяснил, что моё соединение было с лимитом (горячая точка с мобильного телефона), и unattended-upgrades по умолчанию не позволяет обновления через соединения с лимитом. Я изменил это следующей строкой в /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";

Я нашёл причину:

Unattended-Upgrade::InstallOnShutdown "true";

Это означает, что обновления устанавливаются только перед завершением работы. Поскольку этот сервер работает 24/7, обновления никогда не происходили.

Еще одна замечательная причина, которую трудно выявить, заключается в том, что ваша директория /tmp или /var/ примонтирована с параметром noexec в соответствии с любой распространенной CC инструкцией.
Это приведет к сбоям постинсталляционных скриптов и, таким образом, будет блокировать обновления навсегда. Я не знаю безопасного решения для этого, но предполагаю, что есть способ сказать apt изменить флаги монтирования до/после установки.

Поскольку я не могу комментировать… Обратите внимание на @user3207874 ответ:

Это флаг отладки, а не пробный запуск!

unattended-upgrades -d -v

Правильный вариант:

unattended-upgrades --dry-run -v

Смотрите также: https://manpages.ubuntu.com/manpages/noble/man8/unattended-upgrade.8.html

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

Почему unattended-upgrades не работает на вашем сервере Ubuntu и как это исправить

Если вы столкнулись с проблемой, что автоматические обновления через unattended-upgrades не происходят, несмотря на корректную установку и настройки, существует несколько потенциальных причин, которые стоит рассмотреть. Мы пошагово проанализируем возможные причины и предложим решения.

1. Проверьте файл конфигурации 10periodic

Файл /etc/apt/apt.conf.d/10periodic должен содержать правильные параметры для автоматического обновления. Убедитесь, что вы не изменили значения, которые отключают или откладывают обновления. Ваши настройки выглядят правильно:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Эти значения указывают системе проверять наличие обновлений ежедневно.

2. Проверьте файл конфигурации 50unattended-upgrades

Файл /etc/apt/apt.conf.d/50unattended-upgrades определяет, какие пакеты могут быть обновлены автоматически. Ваша конфигурация:

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        "${distro_id}ESM:${distro_codename}";
        "${distro_id}:${distro_codename}-updates";
};

Убедитесь, что строка для обновлений ("${distro_id}:${distro_codename}-updates";) не закомментирована. Если она закомментирована, это означает, что обновления не будут устанавливаться.

3. Отсутствие подключения или имеющиеся ограничения

Иногда unattended-upgrades может не работать из-за проблем с подключением. Если ваше подключение к интернету является помеченным как лимитированным, обновления могут быть заблокированы. Проверьте это с помощью следующей команды:

sudo unattended-upgrades --dry-run -v

Параметр --dry-run показывает, что произойдет во время обновления без фактического выполнения.

Если увидите сообщение о том, что соединение лимитировано, измените параметр в файле 50unattended-upgrades:

Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";

4. Убедитесь, что вам действительно нужны обновления

Проверьте, есть ли в системе специфические пакеты, установленные на автоматическое обновление. Если в журналах unattended-upgrades.log вы видите, что нет доступных обновлений, возможно, их просто нет.

5. Убедитесь, что настройки на перезагрузку верны

Если ваш сервер работает непрерывно, а параметр Unattended-Upgrade::InstallOnShutdown установлен в true, обновления будут устанавливаться только перед выключением системы. В этом случае измените его на false:

Unattended-Upgrade::InstallOnShutdown "false";

6. Проверьте наличие проблем с монтированием

Как упоминалось, наличие опции noexec в /tmp или /var может вызвать проблемы с установкой. Если это так, лучше исключить noexec из настроек монтирования, чтобы избежать проблем с выполнением скриптов.

Заключение

Проверив все вышеперечисленные пункты и внеся соответствующие изменения, вы можете устранить проблемы с unattended-upgrades. Важно также следить за журналами и получать уведомления о проблемах, которые могут возникать во время обновлений. Убедитесь, что ваш сервер надежно обновляется и защищен от уязвимостей. Если проблемы сохраняются, возможно, стоит обратиться к сообществу Ubuntu или к системным администраторам для более глубокого анализа ситуации.

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

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