Projet

Général

Profil

Demande #3614

Détection automatique des services à redémarrer suite à un dist-upgrade

Ajouté par Christian P. Momon il y a environ 5 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normale
Assigné à:
Catégorie:
-
Version cible:
-
Début:
01/03/2019
Echéance:
% réalisé:

0%

Temps estimé:

Description

Lorsqu'un paquet de lib est mis à jour, les services qui en dépendent ne sont pas nécessairement redémarrés par apt.

Demande :
1) installer needrestart sur toutes les machines (ajout dans les paquets April par défaut ?) ;
2) faire une sonde pour remonter si des services ont besoin d'être redémarrés ;
3) déployer la sonde sur toutes (?) les machines.

Sur #april-chapril le 01/01/2019 :

09:32 < cpm_screen> Les paquets suivants seront mis à jour : libssl1.0.2 php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-gd php7.0-intl php7.0-json php7.0-mbstring php7.0-mysql php7.0-opcache php7.0-readline php7.0-xml
09:32 < cpm_screen> ça semble n'être qu'un upgrade simple
09:42 < PoluX__> oui pas de soucis
09:42 < PoluX__> tu peux restarter apache2 pour vérifier que ça tourne après
09:44 < QGuLL> apache et nginx ?
09:52 < cpm_screen> hmmm, bah, c'est pas censé le faire tout seul ?
09:52 < QGuLL> si possible
09:52 < QGuLL> attend je regarde
09:54 < cpm_screen> j'ai fait l'upgrade sur la vm admin et le nginx a été démarré le 18 fév, donc a priori, là, pas redémarré
09:55 < cpm_screen> pareil pour apache sur la vm lamp
09:56 < cpm_screen> ok, je vais redémarré à la main les nginx et apache :D
09:58 < QGuLL> j'ai pas l'impression qu'il mette à jour la libssl utilisée
09:58 < QGuLL> nginx charge libssl1.1:amd64: /usr/lib/x86_64-linux-gnu/libssl.so.1.1
09:58 < QGuLL> après ptet qu'il la lit une fois et garde pas de filehandler ouvert dessus
10:00 < cpm_screen> vala, restarts fait
10:01 < cpm_screen> ou qu'il détecte un changement de fichier et recharge… 
10:01 < QGuLL> possible
10:08 < PoluX__> on devrait installer needrestart et monitorer ça d'ailleurs
10:09 < QGuLL> debian pense à tout /o\
10:10 < PoluX__> à défaut, un lsof | grep lib | grep '(deleted)$' en console donne des indices
10:10 < cpm_screen> hmmmm, mais c'est le boulot du gestionnaire de paquet ça, nan ? S'il met un paquet à jour et que celui-ci est utilisé par un service, il est censé redémarré le service tout seul, nan ? C'est fixé par les caractéristiques du paquets, nan ?
10:10 < PoluX__> cpm_screen: non
10:11 < PoluX__> cpm_screen: si tu upgrade libssl et que apache utilise libssl, le packageur de libssl est pas au courant
10:12 < PoluX__> et la dépendance peut dépendre de la config, donc pas évident de prévoir ça niveau packaging
10:13 < cpm_screen> apt-get (le gestionnaire de paquets) lui, il peut savoir, et du coup l'animateur du paquet libssl pourrait dire « rebooter tout ce qui m'utilise)
10:14 < PoluX__> cpm_screen: oui mais :)

Sur #april-admin le 01/01/2019 :

10:09 < olasd> QGuLL: vu la quantité de trucs à redémarrer ça va plus vite de reboot :p
10:17 < cpm_screen> olasd: huhu, hmmm, dis-moi, 1) dans le paquet d'upgrade, le packageur de libssl peut très bien dire à apt-get de redémarrer le service apache ? 2) les packageurs Debian le font quand c'est nécessaire, n'est-ce pas ?  :D
10:18 < olasd> QGuLL: You think you're some kind of Jedi, waving your hand around like that? I'm a Toydarian. Mind tricks don't work on me. :P
10:18 < olasd> cpm_screen: uniquement quand le fait d'avoir fait la mise à jour va casser le paquet utilisateur (c'est le cas de la libc quand les modules nsswitch changent d'interface)
10:19 < olasd> pour une mise à jour de sécurité dans une bibliothèque, non, il faut redémarrer les utilisateurs de la lib à la main (ou utiliser needrestart ou équivalent)
10:19 < cpm_screen> olasd: haaaaaaa, oki, du coup vaut mieux se poser la question après un apt-get dist-upgrade.
10:20 < cpm_screen> Voilà, needrestart, merciiiiiiiiiiiii <3
10:20 < QGuLL> olasd: mais si lsof ne révèle pas d'utilisation des lib, elles peuvent être copiées par le démon et le filehandler fermé, donc on voit pas si elles sont utilisées ?
10:22 < olasd> hum, aucune idée; le plus simple serait de regarder comment needrestart est implémenté ;p
10:22 < QGuLL> ou d'installer needrestart tout simplement
10:23 < olasd> (needrestart a aussi un hook apt donc il peut demander quels services redémarrer une fois qu'il a fait son job

Historique

#1

Mis à jour par Christian P. Momon il y a environ 5 ans

  • Statut changé de Nouveau à En cours de traitement

Déploiement du paquet needrestart effectué.

Avant (déjà installé sur les VM pouet et libreoffice) :

cpm@ocmstar (15:11:51) ~/Dossiers/April/Chapril/Adminsys 16 > ./do.sh "dpkg -l needrestart" 2> /dev/null |grep needrestart
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)
un  needrestart                                           <aucune>                        <aucune>                        (aucune description n'est disponible)

Action :

./do.sh "apt-get install needrestart" 

Après :

cpm@ocmstar (15:22:27) ~/Dossiers/April/Chapril/Adminsys 19 > ./do.sh "dpkg -l needrestart" 2> /dev/null |grep needrestart
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades
ii  needrestart                                           2.11-3+deb9u1                   all                             check which daemons need to be restarted after library upgrades

#2

Mis à jour par Christian P. Momon il y a presque 5 ans

  • Assigné à mis à Quentin Gibeaux
Plan pour l'April camp de juin 2019 :
  • intégrer le paquet needrestart dans un dépôt April ;
  • créer une sonde par défaut pour la supervision ;
  • intégrer le paquet dans la vm modèle.
#3

Mis à jour par Christian P. Momon il y a presque 5 ans

  • Assigné à changé de Quentin Gibeaux à François Poulain

Les points 1 et 3 sont faits. Reste le point 2 : créer une sonde par défaut pour la supervision.

#4

Mis à jour par Quentin Gibeaux il y a presque 5 ans

  • Statut changé de En cours de traitement à Résolu
  • Assigné à changé de François Poulain à Quentin Gibeaux

La sonde a été déployée.

#5

Mis à jour par Christian P. Momon il y a plus de 4 ans

  • Projet changé de Chapril à Infra Chapril
  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF