Назад | Перейти на главную страницу

Ubuntu 8.04 (Hardy): как автоматически обновлять пакеты apt-get / aptitude на предмет ошибок / безопасности?

У меня есть лаборатория, полная рабочих станций под управлением Ubuntu 8.04 (Hardy Heron). Мои предшественники создали хакерский сценарий cron для ежедневного обновления, обновления и очистки. Мне нравится тот факт, что он не требует никакого внимания, но я хочу придерживаться методов, поддерживаемых дистрибутивом, насколько это возможно, чтобы будущие администраторы могли легко его найти и понять. В частности, кажется, что в Ubuntu есть инфраструктура, позволяющая делать это более чисто, поэтому я бы предпочел ее использовать. Что это влечет за собой?

Этот вопрос был вдохновлен вот этот, на который есть приличный, но разрозненный ответ. Каков итог, исходя из документации?

Этот ответ основан на чтении следующих файлов:

/etc/cron.daily/apt
/etc/apt/apt.conf.d/10periodic
/etc/apt/apt.conf.d/50unattended-upgrades
/usr/share/doc/unattended-upgrades/README

которые являются частью пакетов (в том числе unattended-upgrades и update-notifier-common) включен в стандартную установку Ubuntu. В дистрибутиве доступны другие инструменты, которые могут достичь тех же целей, например apticron и cron-apt.


В файле /etc/apt/apt.conf.d/10periodicдобавьте строку

APT::Periodic::Unattended-Upgrade "1";

Это настраивает периодические сценарии Apt для ежедневного автоматического обновления. Для более длительного интервала увеличьте 1 на большее количество. А 0 для этой переменной будет означать «отключено».

В тандеме с этим autoclean строку следует включить, заменив 0 там:

APT::Periodic::AutocleanInterval "1";

По умолчанию Ubuntu 8.04 настраивает только автоматические автоматические обновления из hardy-security архив. Это защитит вас от уязвимостей системы безопасности, но не от общих выпусков с исправлениями ошибок. Для этого вам нужно включить hardy-updates архив в /etc/apt/apt.conf.d/50unattended-upgrades:

// Uncomment the line that reads as follows:
        "Ubuntu hardy-updates";

Спецификация Ubuntu для этой функции появляется на страница вики. Обратите внимание, что системы Debian, похоже, имеют такую ​​же точную инфраструктуру, очевидно, из-за миграции этой функции вверх по течению.

Хотя автоматическое обновление системы Debian или Ubuntu более чем возможно, используя либо решение, предложенное Novelocrat, либо что-то вроде apticron или cronapt, я должен задаться вопросом, насколько это разумно. Это было упомянуто в вопросе, с которым вы связались, но вам нужно решить, возражаете ли вы против простоя, который может произойти при автоматическом перезапуске служб при их обновлении. Часто, чем больше пакетов обновляется, тем дольше ваша служба может не работать. Это происходит из-за того, что пакеты неправильно останавливают службу до ее установки, а затем запускают ее снова после установки. Многие пакеты нужно просто перезапустить, когда пакет установлен. Это может быть особая проблема, например, MySQL, где пакет Debian будет запускать проверку таблицы при запуске, и если у вас большая база данных, это может привести к блокировке ваших таблиц, пока она не будет завершена. Автоматические обновления также не дают вам возможности проверить пакет на наличие проблем.

Мы используем Puppet для установки 99% пакетов, когда мы их просим. Я запускаю apticron на всех серверах и каждое утро запускаю скрипт, который читает эти письма, удаляет обновления из черного списка, такие как MySQL, Tomcat и PostgreSQL, и обновляет файл манифеста с указанием имени пакета и версии. Когда этот манифест выталкивается, он обновляет эти пакеты. Затем мы должны вручную вносить в черный список, когда мы можем позволить себе простой.

Не нужно делать ничего сложного. Просто перейдите в Система> Администрирование> Менеджер пакетов Synaptic> Настройки> Репозитории> Обновления и выберите Установить обновления безопасности без уведомлений.

это оно