Comment faire pour que les mises à niveau automatiques fonctionnent sur Ubuntu Server?

8

J'ai suivi la documentation pour activer les mises à niveau automatiques dans les serveurs Ubuntu, mais ce n'est vraiment pas du tout une mise à jour.

Mon /etc/apt/apt.conf.d/50unattended-upgrades ressemble presque à la valeur par défaut.

// 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 "[email protected]";


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

Le répertoire / var / log / unattended-upgrades / est vide. Lancer /etc/init.d/unattended-upgrades n'est pas très agréable:

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

Quelque chose semble cassé, mais je ne sais pas pourquoi.

J'ai des mises à jour en attente et elles ne sont pas appliquées:

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/?]

Sur tous les serveurs que j'ai, les mises à niveau sans assistance semblent avoir été désactivées:

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

Des idées ce qui me manque?

pupeno
la source
libc est un package majeur. Je ne laisserais aucun serveur mettre à jour cela tout seul!
Antoine Benkemoun
Antoine, je n'ai aucun problème avec ça; en plus, libc-dev est le paquet devel, probablement un tas de .h et des choses comme ça. Et ce n'est que ce qui est en attente maintenant, maintenant ce qui sera en attente, donc discuter de ce paquet particulier n'ajoute pas grand-chose au problème.
pupeno

Réponses:

4

Avez-vous vérifié /etc/apt/apt.conf.d/10periodic?

il devrait avoir la dernière ligne

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::Unattended-Upgrade "1";
Tanarri
la source
5
Ces paramètres ne vivent pas tous dans 10periodic mais sont répartis sur 10periodic, 20auto-upgrades et 50unattended-upgrades. Si vous les placez au mauvais endroit, une future mise à niveau APT peut les remplacer. 20auto-upgrades est l'endroit pour définir APT :: Periodic :: Unattended-Upgrade "1"; et 50unattended-upgrade pour régler le comportement, comme décrit dans le Guide du serveur Ubuntu.
daff
Pourriez-vous mettre les informations détaillées ici ou des liens? Je ne peux pas les trouver.
Tanarri
4
C'est comme décrit sur help.ubuntu.com/10.04/serverguide/C/automatic-updates.html
Tony Edgecombe
Le Guide du serveur Ubuntu 10.04 (officiel) semble être obsolète. Référez-vous à ma réponse pour plus d'informations.
Hendy Irawan
2
La dernière URL pour les documents est: help.ubuntu.com/lts/serverguide/automatic-updates.html et elle indique que tous ces quatre devraient être en 10periodic comme Tanarri qrote. La page des mises à niveau sans assistance ne contredit pas cela, bien qu'elle ajoute quelques autres informations utiles: help.ubuntu.com/community/AutomaticSecurityUpdates
SamGoody
8

Consultez la documentation réelle de votre version d'Ubuntu ici:

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

Pour Ubuntu 11.10, pour l'activer, vous faites:

sudo dpkg-reconfigure -plow unattended-upgrades

(c'est une boîte de dialogue interactive) qui créera /etc/apt/apt.conf.d/20auto-upgradesavec le contenu suivant:

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

Donc, en effet, les informations du guide du serveur Ubuntu 10.04 sont obsolètes.

Si vous utilisez Puppet comme nous le faisons chez Bippo et Soluvas , vous pouvez utiliser quelque chose comme ça pour automatiser la configuration appropriée des mises à niveau sans assistance :

# 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'] ],
}

Assurez-vous de fournir les modèles / fichiers 50unattended-upgradeset 20auto-upgradescomme bon vous semble.

Je mets également à jour la page Wiki d'Ubuntu pour refléter cela.

Hendy Irawan
la source
1
+1 FWIW, le guide du serveur 13.04 est toujours obsolète.
deizel
6

Je ne vois rien de mal avec vous /etc/apt/apt.conf.d/50unattended-upgrades. Le mien ressemble presque au vôtre, mais je ne laisse que les mises à niveau de sécurité appliquées automatiquement, rien d'autre. Je l'ai également configuré pour envoyer du courrier simplement à "root" (Postfix gère le reste).

Mais: le script init /etc/init.d/unattended-upgradesn'est pas destiné à exécuter des mises à niveau sans assistance. Il vérifie simplement si le processus de mise à niveau sans assistance est en cours d'exécution et attend jusqu'à ce qu'il se termine. Je ne sais pas vraiment pourquoi il est nécessaire ou pourquoi il fait ce qu'il fait (il n'était même pas présent sur les versions précédentes d'Ubuntu) mais ce n'est pas le moyen de faire des mises à niveau sans assistance.

Au lieu de cela, il existe, sur Ubuntu, un programme Python appelé unnattended-upgradesqui fait le travail. Essayez de l'exécuter manuellement et voyez ce qui se passe. Vérifiez également la sortie de la commande

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

Il devrait indiquer UnattendedUpgradeInterval='1', indiquant que vous avez correctement configuré APT pour permettre les mises à niveau sans assistance.

Ubuntu s'exécute /etc/cron.daily/aptquotidiennement depuis cron. Si vous regardez ce script, vous voyez qu'il fait diverses choses liées à APT, parmi lesquelles des mises à niveau sans assistance. Je suppose que vous avez en quelque sorte désactivé ce script cron et que rien ne se passe sans surveillance.

C'est plus ou moins du haut de ma tête. Veuillez poster un suivi si vous avez essayé mes idées sans succès.

HTH

daff
la source
2
Merci pour la réponse daff. J'ai ajouté la sortie de "apt-config shell UnattendedUpgradeInterval APT :: Periodic :: Unattended-Upgrade" à la question. Tous mes serveurs n'impriment rien pour cela.
pupeno