Tâche #20392
Scénario #20668: Finaliser Upgrade-Auto de 2.5.2 vers 2.6.1 (suite)
Faire fonctionner Upgrade-Auto sur AmonEcole
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
Demandes liées
Révisions associées
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
Mise à jour du scipt pre pour l'annuaire
ref: #20392
Rend le script pre_download/03-annuaire compatble avec le mode conteneur d'amonecole
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
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
Utilisation de apt-get en lieu et place de apt-eole
ref: #20392
Ajout en post_upgrade/00-common de la gestion du lien symbolique /opt/lxc vers /var/lib/lxc
ref: #20392
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
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
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
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
Historique
#1 Mis à jour par Joël Cuissinat il y a presque 7 ans
- Tâche parente changé de #20389 à #20668
#2 Mis à jour par Joël Cuissinat il y a presque 7 ans
- Statut changé de Nouveau à En cours
#3 Mis à jour par Laurent Flori il y a presque 7 ans
- Fichier 02-sympa ajouté
- Fichier 03-annuaire ajouté
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.confIl 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 Mis à jour par Laurent Flori il y a presque 7 ans
- Fichier 15-ejabberd ajouté
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 Mis à jour par Laurent Flori il y a presque 7 ans
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 Mis à jour par Laurent Flori il y a presque 7 ans
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 Mis à jour par Laurent Flori il y a presque 7 ans
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 Mis à jour par Laurent Flori il y a presque 7 ans
- Fichier
02-sympasupprimé
#9 Mis à jour par Laurent Flori il y a presque 7 ans
- Fichier
03-annuairesupprimé
#10 Mis à jour par Laurent Flori il y a presque 7 ans
- Restant à faire (heures) changé de 6.0 à 2.0
#11 Mis à jour par Laurent Flori il y a presque 7 ans
- Assigné à mis à Laurent Flori
- Restant à faire (heures) changé de 2.0 à 6.0
#12 Mis à jour par Laurent Flori il y a presque 7 ans
- Assigné à
Laurent Florisupprimé - Restant à faire (heures) changé de 6.0 à 2.0
#13 Mis à jour par Laurent Flori il y a presque 7 ans
- Assigné à mis à Laurent Flori
#14 Mis à jour par Daniel Dehennin il y a presque 7 ans
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-controllerL'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 Mis à jour par Daniel Dehennin il y a presque 7 ans
- Lié à Tâche #16096: Étudier pourquoi les conteneurs ne démarrent pas après gen_conteneurs ajouté
#16 Mis à jour par Daniel Dehennin il y a presque 7 ans
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-controllerL'ajout de ligne pour monter les cgroups vient du
commit: 5557c8b0eCela 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 Mis à jour par Laurent Flori il y a presque 7 ans
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 Mis à jour par Scrum Master il y a presque 7 ans
- Statut changé de En cours à Résolu
#19 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- Restant à faire (heures) changé de 2.0 à 0.0
#20 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- Statut changé de Résolu à En cours
- % réalisé changé de 0 à 80
- Restant à faire (heures) changé de 0.0 à 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 Mis à jour par Fabrice Barconnière il y a presque 7 ans
- Statut changé de En cours à Fermé
- % réalisé changé de 80 à 100
- Restant à faire (heures) changé de 1.0 à 0.0
apt-cacher peut prendre un certain temps pour démarrer