Projet

Général

Profil

Tâche #16846

Scénario #16735: Tester la mise à jour release 2.5.1 2.5.2

migration 2.5.1 vers 2.5.2 : plantage car lien /var/lib/mysql et /var/www/html erronés

Ajouté par christophe guerinot il y a plus de 7 ans. Mis à jour il y a plus de 7 ans.

Statut:
Fermé
Priorité:
Normal
Début:
11/07/2016
Echéance:
% réalisé:

100%

Temps estimé:
2.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Il y a un bug en version 2.5.1 lors de la création des liens /var/lib/mysql et /var/www/html à partir de l'iso eole 2.5.1

Ce n'était pas génant puisque la variante Appli_Web n'etait pas déployé.

Il faudrait une procédure pour remettre ces liens d'aplomb avant une éventuel migration 2.5.1 -> 2.5.2

le serveur se retrouve alors avec les paquets esbl désinstallés suite à la migration (

Révisions associées

Révision 7c18ec59 (diff)
Ajouté par christophe guerinot il y a plus de 7 ans

debian/eole-esbl-all.preinst: Vérification des liens 'html' et 'mysql' et correction éventuelle ( fixes #16846 @1.0 )."

Historique

#1 Mis à jour par christophe guerinot il y a plus de 7 ans

Etat des évolutions des fichiers migration_data.sh , eole-esbl-all.preinst et eole-esbl-all.postinst concernés

suite aux divers 'merge' dans la branche de code entre 2.5.2/master et master le script 'migration_data.sh' est à niveau entre les branches 2.5.2 et 2.6
suite aux divers 'cherry-pick' des commit entre dist/eole/2.5.2/master et dist/eole/2.6.0/master les scripts 'eole-esbl-all.preinst' et 'eole-esbl-all.postinst' sont à niveau entre les branches 2.5.2 et 2.6
voir
https://dev-eole.ac-dijon.fr/issues/13123

Concernant l'état de la version eole 2.5.1

la création des scripts 'migration_data.sh' et 'eole-esbl-all.preinst' générant les liens erronés ont été créés le 30/9/2015 et n'ont pas été modifiés depuis.
Ces scripts générant les liens erronés sont donc intégrés à l'iso 2.5.1 du 10/11/2015

voir
http://eole.ac-dijon.fr/pub/iso/EOLE-2.5/2.5.1/

A faire

générer une boucle vérifiant que les liens sont corrects, sinon déplacer les répertoires et recréer les liens au bons endroits (concerne /var/www/html et /var/lib/mysql)

cette boucle pourrait être intégré au script 'eole-esbl-all.preinst' , la mise à jour du serveur en 2.5.1 devra être à jour avant migration. Parallèlement cette boucle pourrait faire l'objet d'un script intégré sur le serveur sous '/usr/share/zephir/scripts/<script>.zephir' via l'ajout d'un <fichier divers> déployé via les variantes et éventuellement exécuté sur le serveur via <Action sur le serveur> / <Exécuter un script sur le client>

- mettre à niveau les scripts migration_data.sh , eole-esbl-all.preinst et eole-esbl-all.postinst en 2.5.1

Dans tous les cas un nouveau paquet eole-esbl doit être déployé en 2.5.1, suite au installation de serveurs avec l'iso eole 2.5.1

#2 Mis à jour par christophe guerinot il y a plus de 7 ans

l’algorithme a ajouter dans eoe-esbl-all.preinst pourrait être

#!/bin/sh

DIR_LOG=/var/log/esbl
REPORT_LOG=$DIR_LOG/VerifLienHtmlMysql.log

if [ $(/bin/mount | /bin/grep " /home "| /usr/bin/wc -l) -eq 1 ] && [ -f /etc/eole/release ] && [ "$(cat /etc/eole/release|grep EOLE_RELEASE |awk -F "=" '{print $2}')" == "2.5.1" ]; then

    [ ! -d $DIR_LOG ] && /bin/mkdir $DIR_LOG
    echo $(date +%d/%m/%y-%T) >> $REPORT_LOG

    if [ -L "/var/www/html/html" ]; then

        if [ $(/bin/ls /home/data/var/www/html | /usr/bin/wc -l) -ge 1 ]; then
            echo "cas répertoire '/home/data/var/www/html' non vide" >> $REPORT_LOG
            echo "il est nécessaire de traiter les données contenues dans le répertoire '/home/data/var/www/html' manuellement" >> $REPORT_LOG
        else
            echo "remise en état du lien '/var/www/html' -> '/home/data/var/www/html'"  >> $REPORT_LOG
            /bin/rm -f /var/www/html/html > /dev/null
            /bin/rm -rf /home/data/var/www/html > /dev/null
            /bin/mv /var/www/html /home/data/var/www/ > /dev/null
            /bin/ln -s /home/data/var/www/html /var/www/html
        fi
    fi

    if [ -L "/var/lib/mysql/mysql" ]; then

        if [ ! -f /home/data/var/lib/mysql/columns_priv.frm ]; then
            echo "cas le répertoire ne contient pas de fichier 'columns_priv.frm'" >> $REPORT_LOG
            echo "des données de mysql ont été déplacées, contacter le Psin" >> $REPORT_LOG
        else
            echo "remise en état du lien '/var/lib/mysql' -> '/home/data/var/lib/mysql'"  >> $REPORT_LOG
            /bin/rm -f /var/lib/mysql/mysql > /dev/null
            /bin/mv /home/data/var/lib/mysql /var/lib/mysql/ > /dev/null
            /bin/mv /var/lib/mysql /home/data/var/lib/
            /bin/ln -s /home/data/var/lib/mysql /var/lib/mysql
        fi
    fi
fi

exit 0

#3 Mis à jour par christophe guerinot il y a plus de 7 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#4 Mis à jour par Emmanuel IHRY il y a plus de 7 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) changé de 2.0 à 0.0

sera testé dans le cadre du prochain sprint

Formats disponibles : Atom PDF