Автоматическая проверка обновлений / обновление в Debian и Ubuntu
Обновления - одно из важнейших административных действий на сервере. Часто все забывают это делать, откладывая на потом, а в итоге и вовсе забывают. Поэтому для людей, которым не критично - крайне желательно настроить автоматическое обновление, а остальным - как минимум, настроить уведомления о наличии обновлений.
Этот небольшой пост могут пропустить администраторы, у которых огромный парк серверов, т.к. либо они уже используют системы управления конфигурациями, либо им стоит как можно быстрее приступить к изучению этих инструментов.
В Debian based дистрибутивах для автоматического обновления служит пакет unattended-upgrades который может устанавливать как все обновления, так и только обновления безопасности:
sudo apt-get install unattended-upgrades
Открываем файл конфигурации /etc/apt/apt.conf.d/50unattended-upgrades
:
Unattended-Upgrade::Origins-Pattern {
// "o=Debian,a=stable";
// "o=Debian,a=stable-updates";
// "o=Debian,a=proposed-updates";
"origin=Debian,archive=stable,label=Debian-Security";
};
Как видно выше, автоматически будут скачаны и установлены только обновления безопасности (с меткой Debian-Security
). Если нужны остальное - то необходимо просто раскомментировать необходимые строки.
В случае Ubuntu синтаксис этого блока немного другой (на самом деле, это баг, который уже исправлен в unstable ветке debian):
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
В целом тоже самое: по-умолчанию устанавливаются только обновления безопасности, остальные, при надобности можно раскомментировать.
Если какой-то софт нет необходимости обновлять, то можно добавить его в блэклист:
Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};
В принципе все опции понятны, добавлю только что удобно получать сообщения об ошибках на почту и автоматически удалять ненужные зависимости (apt-get autoremove
):
Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailOnlyOnError "true"; // Смысла присылать сообщения если всё хорошо я не вижу
Unattended-Upgrade::Remove-Unused-Dependencies "false";
В случае, если всё таки нет необходимости автоматически обновлять, то как минимум неплохо знать о наличии обновлений. Для этого служит утилита apticron:
sudo apt-get install apticron
Файл конфигурации находится в /etc/apticron/apticron.conf
. Как минимум необходимо настроить email для уведомления и уведомления, только о наличии обновлений для установленных приложений:
EMAIL="admin@example.com"
NOTIFY_NEW="0"