Project

General

Profile

Tâche #20392

Scénario #20668: Finaliser Upgrade-Auto de 2.5.2 vers 2.6.1 (suite)

Faire fonctionner Upgrade-Auto sur AmonEcole

Added by Joël Cuissinat over 3 years ago. Updated over 3 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
05/04/2017
Due date:
% Done:

100%

Estimated time:
6.00 h
Spent time:
Remaining (hours):
0.0

Description

Dans #20285#note-10 Laurent Flori a écrit :

Pour le module Amonecole:

Après ajout du mode conteneur dans les scripts pre/post et installation de libgd-perl sur le maitre (faire la note #2 et aciver le mode conteneur en plus)
la procédure va a son terme on peut redémarrer le serveur et importer la configuration mais impossible de générer les conteneurs.
Ils n'ont pas l'air d'avoir été mis à jour correctement il ne contiennent pas le paquet python-creole ou le paquet systemd

15-ejabberd (72 Bytes) Laurent Flori, 06/08/2017 07:09 PM


Related issues

Related to eole-common - Tâche #16096: Étudier pourquoi les conteneurs ne démarrent pas après gen_conteneurs Fermé 05/09/2016

Associated revisions

Revision 2e5f72b8 (diff)
Added by Laurent Flori over 3 years ago

Mise à niveau des scripts pre pour sympa et post pour clamav

ref: #20392

Cette mise à jour rend les procedures compatibles avec le mode conteneur de l'amonecole
- clamav: prise en compte du socket clamd.ctl au lieu de clamd
- sympa: mise à jour des droits sur la base de données et sauvegrade de la configuration

Revision 8f0e94b5 (diff)
Added by Laurent Flori over 3 years ago

Mise à jour du scipt pre pour l'annuaire

ref: #20392

Rend le script pre_download/03-annuaire compatble avec le mode conteneur d'amonecole

Revision 7688e690 (diff)
Added by Laurent Flori over 3 years ago

Ajout de l'option force-overwrite à la conf d'apt-eole dans les conteneurs

ref: #20392

On ajoute pour la procédure d'upgrade seulement l'option force-overwrite à apt-eole
On la retire apres upgrade

Revision 9568a285 (diff)
Added by Laurent Flori over 3 years ago

Ajout d'un scipt pre_download pour supprimer le paquet eole-ejabberd-pkg du conteneur reseau

ref: #20392

On supprime le paquet eole-ejabberd-pkg en pre_download le paquet sera reinstallé au gen_conteneur après premier reboot apres upgrade

Revision 2ef190e4 (diff)
Added by Laurent Flori over 3 years ago

Utilisation de apt-get en lieu et place de apt-eole

ref: #20392

Revision 5500779e (diff)
Added by Laurent Flori over 3 years ago

Ajout en post_upgrade/00-common de la gestion du lien symbolique /opt/lxc vers /var/lib/lxc

ref: #20392

Revision da0306f9 (diff)
Added by Laurent Flori over 3 years ago

Gestion de la mise à jour en mode conteneur de sympa

ref: #20392

La mise à jour de sympa devrait passer en mode conteneur suivant la même procèdure
pre/post que les autres services

Revision 90e9ee9d (diff)
Added by Laurent Flori over 3 years ago

Correction typo dans l'upgrade de sympa syr amonecole

ref: #20392

  • pre-traitement: on ne supprime plus le script d'init avant l'upgrade
    la maj n'aime pas ne pas le trouver à la désinstallation de eole-sympa-tic
  • post-traitement: correction typo dans le passage de l'upgrade de la base

Revision 80374843 (diff)
Added by Laurent Flori over 3 years ago

Suppression des sorties stdout/stderr pour le post_upgrade de sympa

ref: #20392

La procédure fonctionne, je supprime les sorties top verbeuses et qui concernent la configuration

Revision cb746c7f (diff)
Added by Daniel Dehennin over 3 years ago

Enable the migration of AmonEcole from 2.5.2 to 2.6.1

We need to clear the apparmor cache or the LXC containers will not
start after the reboot.

  • upgrade/post_upgrade/90-clear-apparmor-cache: Clear the cache.
  • upgrade/Upgrade-Auto: Add amonecole to 2.6.1 list of modules.
    Enable container migration.
    Factorize new and old Ubuntu distribution names to rewrite
    sources.list.

Ref: #20392

History

#1 Updated by Joël Cuissinat over 3 years ago

  • Parent task changed from #20389 to #20668

#2 Updated by Joël Cuissinat over 3 years ago

  • Status changed from Nouveau to En cours

#3 Updated by Laurent Flori over 3 years ago

  • File 02-sympa added
  • File 03-annuaire added

Dans le script Upgrade-Auto:
• Ajouter amonecole dans la liste des modules supportés
• Mettre la variable CONTAINER_IS_SUPPORTED a True
• Changer precise en trusty et trusty en xenial dans la fonction upgrade_container_source

Il faut passer une option supplémentaire à Dpkg pour l'upgrade dans les conteneurs --force-ovewrite cette option est déjà présente sur le maître via le script pre_download/00-dpkg_options mais il ne prend pas en charge le mode conteneur.

Si On fait comme sur le maître et qu'on génère un fichier 99UpgradeEole dans /etc/apt/conf.d/ que l'on supprime après la procédure, ça ne fonctionne pas le fichier n'est pas pris en compte.
on tente le sed avant et apres maj
Avant:

sed -i 's/{"--force-confold"; "--force-confmiss";};/{"--force-confold"; "--force-confmiss";"--force-overwrite";};/' /opt/lxc/*/rootfs/etc/apt/apt-eole.conf

Après:
sed -i 's/{"--force-confold"; "--force-confmiss";"--force-overwrite";};/{"--force-confold"; "--force-confmiss";};/' /opt/lxc/*/rootfs/etc/apt/apt-eole.conf

Il faut modifier certains scripts pre_download et post_upgrade pour prendre en compte le mode conteneur:
  • pre_download
    - 02-sympa
    - 03-annuaire
  • post_upgrade
    - 04-clamav-daemon
    - 99-upgrade-annuaire
    - 99-upgrade-sympa

Pour les scripts pre_download, c'est fait, pour les scripts post_upgrade c'est different, creoled/CreoleRun ne sont pas disponibles pour effectuer des taches de post-configuration.
Je désactive les scripts post-upgrade qui posent probleme. Peut etre qu'une solution serait de faire une étape de postconfiguration apres le premier reboot

Après la procédure et avant de redémarrer, il faut (pour l'instant à la main):
• commenter la ligne sur le profl apparmor dans le template lxc.config
• remplacer le répertoire /var/lib/lxc par un nouveau lien vers /opt/lxc

#4 Updated by Laurent Flori over 3 years ago

Finalement avec la procéudre ci dessus, il faut aussi enlever le paquet eole-ejabberd-pkg du conteneur réseau (pb a la configuration du paquet)

#5 Updated by Laurent Flori over 3 years ago

Il me semble que la procédure d'installation du paquet openldap dans le conteneur bdd prend bien en charge le backup/restore de l'annuaire. IL faudrait vérifier avec un scribe et/ou un horus la pertinence des scripts pre_download/03-annuaire et post_upgrade/99-upgrade-annuaire
il faut bien faire l'upgrade comme sur le scribe

#6 Updated by Laurent Flori over 3 years ago

Le problème de la post-configuration de clamav vient de la mauvaise localisation du fichier socket dans le fichier diagnose.py
SOCKETFILE = '/run/clamav/clamd.ctl'

Alors que par défaut le fichier est attendu
SOCKETFILE = '/run/clamav/clamd'

On peut au choix:
  • Changer le fichier de socket qui est déclaré dans le fichier:
    [conteneur]/etc/systemd/system/clamav-daemon.socket.d/extend.conf
    

    il faut soit redémarrer le conteneur soit faire un reload de systemd-daemon et un restart de clamav-daemon
  • Faire un lien de /run/clamav/clamd vers /run/clamav/clamd.ctl
  • Changer le fichier de socket dans le fichier diagnose.py

#7 Updated by Laurent Flori over 3 years ago

Le problème du profil apparmor est du à l'option qui semble faire doublon avec le comprotement par défaut:

#/etc/apparmor.d/lxc/lxc-default-with-cdrom
# Enable systemd cgroup mount in container
mount fstype=cgroup -> /sys/fs/cgroup/**,

si on commente la ligne de mount, les conteneurs redémarent sans problèmes avec le profil apparmor actif
le fichier lxc-default-with-cdrom vient du paquet eole-lxc-controller

L'ajout de ligne pour monter les cgroups vient du
commit: 5557c8b0e

#8 Updated by Laurent Flori over 3 years ago

  • File deleted (02-sympa)

#9 Updated by Laurent Flori over 3 years ago

  • File deleted (03-annuaire)

#10 Updated by Laurent Flori over 3 years ago

  • Remaining (hours) changed from 6.0 to 2.0

#11 Updated by Laurent Flori over 3 years ago

  • Assigned To set to Laurent Flori
  • Remaining (hours) changed from 2.0 to 6.0

#12 Updated by Laurent Flori over 3 years ago

  • Assigned To deleted (Laurent Flori)
  • Remaining (hours) changed from 6.0 to 2.0

#13 Updated by Laurent Flori over 3 years ago

  • Assigned To set to Laurent Flori

#14 Updated by Daniel Dehennin over 3 years ago

Laurent Flori a écrit :

Le problème du profil apparmor est du à l'option qui semble faire doublon avec le comprotement par défaut:
[...]
si on commente la ligne de mount, les conteneurs redémarent sans problèmes avec le profil apparmor actif
le fichier lxc-default-with-cdrom vient du paquet eole-lxc-controller

L'ajout de ligne pour monter les cgroups vient du
commit: 5557c8b0e

Cela ne gêne pourtant pas la mise en production d’un AmonEcole depuis l’ISO…

Je teste sans cette ligne…

#15 Updated by Daniel Dehennin over 3 years ago

  • Related to Tâche #16096: Étudier pourquoi les conteneurs ne démarrent pas après gen_conteneurs added

#16 Updated by Daniel Dehennin over 3 years ago

Daniel Dehennin a écrit :

Laurent Flori a écrit :

Le problème du profil apparmor est du à l'option qui semble faire doublon avec le comprotement par défaut:
[...]
si on commente la ligne de mount, les conteneurs redémarent sans problèmes avec le profil apparmor actif
le fichier lxc-default-with-cdrom vient du paquet eole-lxc-controller

L'ajout de ligne pour monter les cgroups vient du
commit: 5557c8b0e

Cela ne gêne pourtant pas la mise en production d’un AmonEcole depuis l’ISO…

Je teste sans cette ligne…

Lors du gen_conteneurs :

root - Impossible de démarrer les conteneurs : internet, bdd, reseau, partage

En démarrant à la main au premier plan :

root@amonecole:~# lxc-start --name bdd --logpriority=DEBUG -F
Failed to mount cgroup at /sys/fs/cgroup/systemd: Permission denied
[!!!!!!] Failed to mount API filesystems, freezing.
Freezing execution.

#17 Updated by Laurent Flori over 3 years ago

Suite à la suggestion de Daniel d'un cache apparmor à vider manuellement avant le premier reboot:

rm -f /etc/apparmor.d/cache/*

Les conteneurs démarrent correctement après le premier reboot en gardant les profils apparmor actifs

#18 Updated by Scrum Master over 3 years ago

  • Status changed from En cours to Résolu

#19 Updated by Fabrice Barconnière over 3 years ago

  • Remaining (hours) changed from 2.0 to 0.0

#20 Updated by Fabrice Barconnière over 3 years ago

  • Status changed from Résolu to En cours
  • % Done changed from 0 to 80
  • Remaining (hours) changed from 0.0 to 1.0

Instance après Upgrade + reboot + gen_config :

---------------------------------------------------------------------------------------------------------------------------------------
                                                       Génération des conteneurs                                                       
---------------------------------------------------------------------------------------------------------------------------------------
ne peut se connecter à apt-cacher-ng dans le conteneur, veuillez regarder les logs dans /var/log/apt-cacher-ng/ et redémarrer le serveur avec la commande "systemctl start apt-cacher-ng" 

#21 Updated by Fabrice Barconnière over 3 years ago

  • Status changed from En cours to Fermé
  • % Done changed from 80 to 100
  • Remaining (hours) changed from 1.0 to 0.0

apt-cacher peut prendre un certain temps pour démarrer

Also available in: Atom PDF