Как заставить автоматические обновления работать на 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:~#

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


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";

5
Эти настройки не все живут в 10-периодическом режиме, а распределены по 10-периодическим, 20-автоматическим и 50 автоматическим обновлениям. Если вы поместите их не в том месте, то в будущем обновление APT может перезаписать их. 20auto-upgrade - место для установки APT :: Periodic :: Unattended-Upgrade "1"; и 50unattended-upgrade для настройки поведения, как описано в Руководстве по Ubuntu Server.
Дафф

Не могли бы вы разместить подробную информацию здесь или ссылку (ы)? Я не могу их найти.
Танарри


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» к вопросу. Все мои серверы ничего не печатают для этого.
Пупено
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.