Как заставить автоматические обновления работать на Ubuntu Server?

8

Я следовал за документацией для включения автоматического обновления на серверах Ubuntu, но на самом деле он вообще ничего не обновляет.

Мой /etc/apt/apt.conf.d/50unattended-upgrades выглядит почти как по умолчанию.

// Automatically upgrade packages from these (origin, archive) pairs
Unattended-Upgrade::Allowed-Origins {
        "Ubuntu karmic-security";
        "Ubuntu karmic-updates";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//      "vim";
//      "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 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 "pupeno@example.com";


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

Каталог / var / log / unattended-upgrades / пуст. Запуск /etc/init.d/unattended-upgrades start не очень приятен:

root@mozart:~# /etc/init.d/unattended-upgrades start
Checking for running unattended-upgrades: root@mozart:~#

Кажется, что-то сломано, но я не уверен почему.

У меня ожидающие обновления, и они не применяются:

root@mozart:~# aptitude safe-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
The following packages will be upgraded:
  linux-libc-dev 
1 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/743kB of archives. After unpacking 4096B will be used.
Do you want to continue? [Y/n/?]

На всех серверах, которые у меня есть, автоматические обновления были отключены:

root@mozart:~# apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade
root@mozart:~#

Есть идеи, что мне не хватает?

pupeno
источник
libc является основным пакетом. Я бы не позволил ни одному серверу обновить это самостоятельно!
Антуан Бенкемун
Антуан, у меня нет проблем с этим; кроме того, libc-dev - это пакет devel, вероятно, набор .h и тому подобное. И это только то, что ожидается сейчас, теперь то, что будет ожидаться последним, так что обсуждение этого конкретного пакета мало что добавляет к проблеме.
Пупено

Ответы:

4

Вы проверяли /etc/apt/apt.conf.d/10periodic?

должно быть последняя строка

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::Unattended-Upgrade "1";
Tanarri
источник
5
Эти настройки не все живут в 10-периодическом режиме, а распределены по 10-периодическим, 20-автоматическим и 50 автоматическим обновлениям. Если вы поместите их не в том месте, то в будущем обновление APT может перезаписать их. 20auto-upgrade - место для установки APT :: Periodic :: Unattended-Upgrade "1"; и 50unattended-upgrade для настройки поведения, как описано в Руководстве по Ubuntu Server.
Дафф
Не могли бы вы разместить подробную информацию здесь или ссылку (ы)? Я не могу их найти.
Танарри
4
Это как описано в help.ubuntu.com/10.04/serverguide/C/automatic-updates.html
Тони Эджкомб
Ubuntu 10.04 (официальное) руководство по серверу устарело. Обратитесь к моему ответу для получения дополнительной информации.
Хенди Ираван
2
Последний URL-адрес для документов: help.ubuntu.com/lts/serverguide/automatic-updates.html и говорит, что все эти четыре должны быть в 10-периодическом, как Tanarri qrote. Страница для автоматических обновлений не противоречит этому, хотя и добавляет другую полезную информацию: help.ubuntu.com/community/AutomaticSecurityUpdates
SamGoody
8

Проверьте актуальную документацию для вашей версии Ubuntu здесь:

/usr/share/doc/unattended-upgrades/README.gz

Для Ubuntu 11.10, чтобы включить его, вы делаете:

sudo dpkg-reconfigure -plow unattended-upgrades

(это интерактивный диалог), который будет /etc/apt/apt.conf.d/20auto-upgradesсоздан со следующим содержанием:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Таким образом, информация в руководстве к серверу Ubuntu 10.04 устарела.

Если вы используете Puppet, как мы это делаем в Bippo и Soluvas , вы можете использовать что-то вроде этого, чтобы автоматизировать правильную конфигурацию автоматического обновления :

# Unattended upgrades
package { unattended-upgrades: ensure => present }
file { '/etc/apt/apt.conf.d/50unattended-upgrades':
  content => template('bipposerver/50unattended-upgrades'),
  mode    => 0644,
  require => Package['unattended-upgrades'],
}
file { '/etc/apt/apt.conf.d/20auto-upgrades':
  source  => 'puppet:///bipposerver/20auto-upgrades',
  mode    => 0644,
  require => Package['unattended-upgrades'],
}
service { unattended-upgrades:
  enable    => true,
  subscribe => [ Package['unattended-upgrades'],
                 File['/etc/apt/apt.conf.d/50unattended-upgrades',
                      '/etc/apt/apt.conf.d/20auto-upgrades'] ],
}

Убедитесь, что предоставили шаблоны / файлы 50unattended-upgradesи 20auto-upgradesкак считаете нужным.

Я также обновляю страницу Ubuntu Wiki, чтобы отразить это.

Хенди ираван
источник
1
+1 FWIW, руководство по серверу 13.04 по-прежнему устарело.
Деизель
6

Я не вижу ничего плохого в твоем /etc/apt/apt.conf.d/50unattended-upgrades. Мой выглядит почти так же, как ваш, но я разрешаю только автоматическое обновление безопасности, больше ничего. Я также настроил отправку почты просто в «root» (Postfix обрабатывает все остальное).

Но: сценарий инициализации /etc/init.d/unattended-upgradesне предназначен для запуска автоматических обновлений. Он просто проверяет, запущен ли процесс автоматического обновления, и ожидает его завершения. Я действительно не знаю, зачем это нужно или почему он делает то, что делает (его даже не было в предыдущих версиях Ubuntu), но это не способ выполнять автоматические обновления.

Вместо этого в Ubuntu есть программа на Python, unnattended-upgradesкоторая выполняет эту работу. Попробуйте запустить это вручную и посмотрите, что произойдет. Также проверьте вывод команды

apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade 

Должно быть сказано UnattendedUpgradeInterval='1', что означает, что вы правильно настроили APT для автоматического обновления.

Ubuntu работает /etc/cron.daily/aptежедневно от cron. Если вы посмотрите на этот скрипт, то увидите, что он выполняет различные связанные с APT вещи, в том числе автоматические обновления. Я предполагаю, что вы как-то отключили этот скрипт cron, и поэтому ничего не происходит без присмотра.

Вот так, более или менее, с моей головы. Пожалуйста, напишите продолжение, если вы попробовали мои идеи без успеха.

НТН

Дафф
источник
2
Спасибо за ответ daff. Я добавил вывод «apt-config shell UnattendedUpgradeInterval APT :: Periodic :: Unattended-Upgrade» к вопросу. Все мои серверы ничего не печатают для этого.
Пупено