Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Это руководство расскажет как настроить в Debian систему автоматического обновления и установки пакетов без участия пользователя, а также что нужно сделать, чтобы система ежедневно отправляла вам письмо с отчётом об установленных обновлениях.

1. Настройка автоматического обновления системы.

Для того, чтобы система могла обновляться автоматически нам необходимо установить пакет unattended-upgrades. Также было бы неплохо иметь в системе установленную команду /usr/bin/mail для случая, если вы захотите настроить unattended-upgrades для отправки уведомлений по почте, для этого мы также установим пакет bsd-mailx:

 

apt-get install unattended-upgrades bsd-mailx

 

Далее необходимо настроить unattended-upgrades. Для этого приводим конфиг /etc/apt/apt.conf.d/50unattended-upgrades к следующему виду:

 

nano /etc/apt/apt.conf.d/50unattended-upgrades

 

При дефолтных настройках всё и так должно работать, однако если вы всё-таки хотите что-либо изменить, то читайте комментарии в конфиге. Например, в конфиге можно указать из каких типов источников брать обновления (по умолчанию стоят stable и security). Также, есть возможность указать e-mail для отправки отчёта о возникших проблемах при обновлении. Есть возможности настройки удаления ненужных зависимостей, автоматической перезагрузки системы, в случае необходимости, ограничения скорости загрузки новых пакетов.

 

// Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
"${distro_id} stable";
"${distro_id} ${distro_codename}-security";
//"${distro_id} ${distro_codename}-updates";
//"${distro_id} ${distro_codename}-proposed-updates";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//"libc6";
//"libc6-dev";
//"libc6-i686";
};

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that yo
u

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. The package 'mailx'
// must be installed or anything that provides /usr/bin/mail.
//Unattended-Upgrade::Mail "root@localhost";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if a
// the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

 

 

Далее, создаём файл /etc/apt/apt.conf.d/02periodic:

 

nano /etc/apt/apt.conf.d/02periodic

 

// Enable the update/upgrade script (0=disable)
APT::Periodic::Enable "1";

// Do "apt-get update" automatically every n-days (0=disable)
APT::Periodic::Update-Package-Lists "1";

// Do "apt-get upgrade --download-only" every n-days (0=disable)
APT::Periodic::Download-Upgradeable-Packages "1";

// Run the "unattended-upgrade" security upgrade script
// every n-days (0=disabled)
// Requires the package "unattended-upgrades" and will write
// a log in /var/log/unattended-upgrades
APT::Periodic::Unattended-Upgrade "1";

// Do "apt-get autoclean" every n-days (0=disable)
APT::Periodic::AutocleanInterval "7";

 

Автоматическое обновление будет запускаться один раз в день с помощью cron-скрипта /etc/cron.daily/apt. Скрипт будет писать лог в файл /var/log/unattended-upgrades/unattended-upgrades.log. При успешном обновлении лог будет выглядеть следующим образом:

 

 

2011-07-13 16:49:30,878 INFO Initial blacklisted packages:

2011-07-13 16:49:30,880 INFO Starting unattended upgrades script

2011-07-13 16:49:30,880 INFO Allowed origins are: ["('Debian', 'stable')", "('Debian', 'squeeze-security')"]

2011-07-13 16:50:05,222 INFO Packages that are upgraded: apt apt-listchanges apt-utils base-files bind9-host

console-setup dnsutils dpkg e2fslibs e2fsprogs host isc-dhcp-client isc-dhcp-common keyboard-configuration

klibc-utils libbind9-60 libcomerr2 libdns69 libgssapi-krb5-2 libgssrpc4 libisc62 libisccc60 libisccfg62

libk5crypto3 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libklibc libkrb5-3 libkrb5support0 libldap-2.4-2

liblwres60 libperl5.10 libruby1.8 libss2 libxml2 linux-base linux-image-2.6.32-5-amd64 login openssl passwd

perl perl-base perl-modules python python-apt python-apt-common python-minimal tzdata

2011-07-13 16:50:05,225 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg_2011-07-13_16:50:05.224836.log'

2011-07-13 16:51:51,290 INFO All upgrades installed

 

 

 

2. Настройка системы отправки уведомлений о доступных обновлениях.

 

Устанавливаем пакет apticron, который будет отправлять нам уведомления об имеющихся обновлениях пакетов.

 

apt-get install apticron

 

Для его настройки редактируем файл /etc/apticron/apticron.conf:

 

nano /etc/apticron/apticron.conf

 

 [...] # set EMAIL to a space separated list of addresses which will be notified of

# impending updates # EMAIL="root@localhost Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript."

[...]

 

Здесь указываем на какой адрес(а) отправлять уведомления. Если адресов несколько, прописываем их через пробел.

Благодарность за статью Falko Timme