Projet

Général

Profil

Tâche #20392

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

Faire fonctionner Upgrade-Auto sur AmonEcole

Ajouté par Joël Cuissinat il y a presque 7 ans. Mis à jour il y a presque 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
04/05/2017
Echéance:
% réalisé:

100%

Temps estimé:
6.00 h
Temps passé:
Restant à faire (heures):
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 octets) Laurent Flori, 08/06/2017 19:09


Demandes liées

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

Révisions associées

Révision 2e5f72b8 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision 8f0e94b5 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

Mise à jour du scipt pre pour l'annuaire

ref: #20392

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

Révision 7688e690 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision 9568a285 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision 2ef190e4 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

ref: #20392

Révision 5500779e (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

ref: #20392

Révision da0306f9 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision 90e9ee9d (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision 80374843 (diff)
Ajouté par Laurent Flori il y a presque 7 ans

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

Révision cb746c7f (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

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.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 Mis à jour par Laurent Flori il y a presque 7 ans

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

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 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-sympa supprimé

#9 Mis à jour par Laurent Flori il y a presque 7 ans

  • Fichier 03-annuaire supprimé

#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 Flori supprimé
  • 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-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 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-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 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

Formats disponibles : Atom PDF