Автоматическое обновление пакетов в популярных дистрибутивах Linux

Когда число серверов — один или два, можно легко выполнять aptitude && aptitude upgrade или yum на каждом из них вручную. Когда серверов становится больше пяти — это начинает напрягать, когда их десятки — это уже не реально.

Во многих популярных дистрибутивах присутствуют средства автоматического обновления установленного ПО. О них и пойдет речь в этой заметке.

/

Для Debian’на существует утилита cron-apt, с ее помощью можно автоматизировать скачивание, а при желании и установка обновлений. Автоматизация обновлений в промышленной среде не всегда хорошая идея, но практика показывает что установка security-обновлений не приводит к каким-либо мержам конфигов и тому подобным радостям.

Устанавливается cron-apt из стандартных репозиториев:

 [email protected]:~$ aptitude install cron-apt 

Теперь настроем автоматическую установку security-обновлений. Для этого создадим несколько конфигурационных файлов. Сначала создаем /etc/apt/sources.list.d/security.list, для Lenny он выглядит примерно так:

 deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free 

Ну и собственно автоматизируем установку, создаем /etc/cron-apt/action.d/4-security:

 upgrade -y -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list 

Для того чтобы получать уведомления на электронную почту добавляем в /etc/cron-apt/config:

 MAILTO="[email protected]" MAILON="always" 

Этих действий достаточно чтобы cron-apt каждый день самостоятельно устанавливал security-обновления и отправлял на электронную почту отчет о проделанной работе.

RHEL 5/ 5

На платоформе RHEL 5/CentOS 5 по-умолчанию используется yum-updatesd. Однако, вместо него рекомендуется использовать yum-cron.

Для использования yum-cron необходимо сначала удалить yum-updatesd:

 [email protected]:~$ service yum-updatesd stop [email protected]:~$ rpm -e yum-updatesd 

После этого устанавливаем yum-cron:

 [email protected]:~$ yum install yum-cron [email protected]:~$ chkconfig --level 35 yum-cron on [email protected]:~$ service yum-cron start 

После этих действий обновления будут скачиваться и устанавливаться автоматически.