Migration sans réinstallation vers EOLE 2.7

Procédure avec Upgrade-Auto successifs

Le serveur doit être en version EOLE 2.5.2 à jour.

Dans le cas contraire vous devez mettre à niveau votre serveur EOLE 2.5 à l'aide des commandes Maj-Release et/ou Maj-Auto.

Vous pouvez mettre à jour vers la version 2.7 sans avoir à réinstaller le serveur avec un enchaînement d’exécutions de la commande Upgrade-Auto qui permettent de passer successivement :

  1. de la version mineure 2.5.2 à la version mineure 2.6.2 ;

  2. de la version mineure 2.6.2 à une version 2.7.

Remarque

En fonction du module et de la quantité de données, cette procédure peut avoir un temps d’exécution beaucoup plus long que la migration avec le script migration27.sh.

Truc & astuceQuelle est la version mineure de mon serveur ?

Vous pouvez connaître la version mineure de votre serveur avec la commande : CreoleGet eole_release.

Attention

Certaines clefs de signature des dépôts de paquets EOLE sont arrivées à expiration fin mai 2018.

Le déploiement d'un nouveau trousseau de clefs est indispensable à l'exécution des commandes Query-Auto, Maj-Auto, Maj-Release et Upgrade-Auto.

Le nouveau trousseau de clefs doit être déployé manuellement sur les serveurs impactés.

Déploiement du nouveau trousseau de clefs

Certaines clefs de signature des dépôts de paquets EOLE sont arrivées à expiration fin mai 2018.

Le déploiement d'un nouveau trousseau de clefs est indispensable à l'exécution des commandes Query-Auto, Maj-Auto, Maj-Release et Upgrade-Auto.

Cela entraîne l'impossibilité de mettre à jour ou de migrer les serveurs EOLE qui sont en version 2.4.0, 2.4.1, 2.4.2, 2.5.0 et 2.5.1.

Le nouveau trousseau de clefs doit être déployé manuellement sur les serveurs impactés.

ExempleMessage caractéristique de l'expiration des clefs

1
ATTENTION : les paquets suivants n'ont pas été authentifiés.
2
3
  [...]
4
5
E: Il y a des problèmes et -y a été employé sans --force-yes
6
l'appel à apt-get (-c /etc/apt/apt-eole.conf dist-upgrade) a retourné une erreur (code 100). Voir /var/log/apt/term.log
7
root@eolebase:~#

Deux méthodes de déploiement sont possibles :

  • Installation du nouveau trousseau de clefs par Zéphir

  • Installation du paquet Debian du nouveau trousseau de clefs

Installation du nouveau trousseau de clefs sur plusieurs serveurs avec Zéphir

Télécharger sur votre ordinateur le fichier du nouveau trousseau de clefs :

user@linux:~$ wget https://dev-eole.ac-dijon.fr/attachments/download/2678/fixed-eole-archive-keyring.gpg

Sur Zéphir modifier la variante utilisée :

  • dans le menu modules, cliquer sur variantes sur la ligne du module désiré

  • cliquer sur variantes pour afficher la page Liste des variantes relatives au module

  • cliquer sur éditer la variante

  • Dans Liste des fichiersFichiers divers, cliquer sur le bouton Parcourir et sélectionner le fichier du nouveau trousseau de clefs fixed-eole-archive-keyring.gpg précédemment téléchargé.

    Définir le chemin de destination à la valeur : /etc/apt/trusted.gpg.d/fixed-archive-keyring.gpg

  • cliquer sur Valider les modifications

Pour exécuter l'envoi des fichiers sur les serveurs il faut définir un groupe correspondant à la variante.

  • Dans le menu serveursSélectionner et enregistrer un groupe de serveurs

  • Dans le menu serveursGérer les groupes enregistrés de serveurs affiche la liste des groupes enregistré.

  • Sélectionner le nom du groupe, la liste des serveurs appartenant au groupe est affiché.

  • Cliquer sur Actions sur le groupe de serveurs pour exécuter une action sur le groupe de serveur

  • Sur la (première) ligne Envoyer la configuration au serveur sélectionner Fichiers Divers/paquets dans le menu déroulant, décocher la case lancer reconfigure

  • Cliquer sur Envoyer la configuration au serveur

  • Les données seront envoyées à la prochaine connexion des serveurs à Zéphir

Installation du nouveau trousseau de clefs sur un serveur avec Zéphir

Sur la fiche d'état du serveur concerné cliquer sur voir les fichiers personnalisés

  • Dans Liste des fichiersFichiers divers, cliquer sur le bouton Parcourir et sélectionner le fichier du nouveau trousseau de clefs fixed-eole-archive-keyring.gpg précédemment téléchargé.

    Définir le chemin de destination à la valeur : /etc/apt/trusted.gpg.d/fixed-archive-keyring.gpg

  • cliquer sur Valider les modifications

  • cliquer sur Retour à la page d'état

  • cliquer sur Actions sur le serveur

  • Sur la (première) ligne Envoyer la configuration au serveur sélectionner Fichiers Divers/paquets dans le menu déroulant, décocher la case lancer reconfigure

  • Cliquer sur Envoyer la configuration au serveur

  • Les données seront envoyées à la prochaine connexion des serveurs à Zéphir

Installation du paquet Debian du nouveau trousseau de clefs

Télécharger le paquet Debian depuis le serveur :

root@server:~# wget http://eole.ac-dijon.fr/eole/pool/main/e/eole-keyring/eole-archive-keyring_2018.05.30-1_all.deb

Vérifier l'intégrité du paquet téléchargé avec la somme de contrôle SHA512 :

root@server:~# sha512sum eole-archive-keyring_2018.05.30-1_all.deb

Le résultat doit être égal à :

1e37611c94b408a015dfa24f48da863320d4c87abee4031f9b6357700cb4b1bf066473621637e452a771672325726c033c31c07d7f64480ebc477e4f15a1df58

eole-archive-keyring_2018.05.30-1_all.deb

Installer le paquet à l'aide de la commande dpkg :

root@server:~# dpkg -i eole-archive-keyring_2018.05.30-1_all.deb

Vérifier la présence des clefs :

root@server:~# apt-key list

La commande liste la présence du fichier eole-archive-keyring.gpg dans /etc/apt/trusted.gpg.d/ et les clefs EOLE.

Passage de la dernière version mineure 2.n vers la dernière version mineure de 2.n+1

RemarqueDKMS

La procédure de migration refusera de s'exécuter si elle détecte des pilotes compilés (DKMS[1]).

Les DKMS sont en effet susceptibles de faire échouer la procédure : impossibilité de démarrer sur le nouveau noyau, fichier présent dans le paquet DKMS fourni par un autre paquet en standard…

Pour des structures avec un faible débit réseau il est possible de limiter la taille du téléchargement en utilisant une image ISO stockée sur une clef USB, un cédérom ou un dépôt local. Dans ce cas, seuls les paquets plus récents que ceux présents sur l'image ISO seront téléchargés.

Truc & astuce

  • Upgrade-Auto --cdrom permet de copier le contenu du nouveau CD d'installation EOLE et évite le téléchargement de l'image ISO et des paquets déjà présents sur le CD.

  • Upgrade-Auto --download permet de procéder uniquement au téléchargement de l'image ISO de la version cible. La migration n'est effectuée qu'après un nouvel Upgrade-Auto.

  • Upgrade-Auto --iso <chemin de l'image ISO> permet de copier le contenu d'une image ISO d'installation EOLE locale. Cela évite son téléchargement et celui des paquets déjà présents sur le CD.

  • Upgrade-Auto --iso <URl de l'iso>, permet de télécharger l'ISO et les fichiers connexes (le MD5, la signature, ...) depuis une adresse ou un dépôt particulier.

  • Ajouter l'option --download à la commande Upgrade-Auto --cdrom permet de copier le contenu du nouveau CD d'installation EOLE. La migration n'est effectuée qu'après un nouvel Upgrade-Auto.

  • Ajouter l'option --download à la commande Upgrade-Auto --iso <chemin de l'image ISO> permet de procéder uniquement à la copie de l'image ISO. La migration n'est effectuée qu'après un nouvel Upgrade-Auto.

  • L'option --limit-rate <bande passante> permet de personnaliser la limite de la bande passante à utiliser pour le téléchargement. Sa valeur est par défaut fixée à 120k (120 kilooctets). Cette option est passée directement à la commande wget, la valeur 0 désactive la limitation.

ExempleExemples d'utilisation

# Upgrade-Auto --limit-rate 0

# Upgrade-Auto --limit-rate 120k

# Upgrade-Auto --download --limit-rate 10M

# Upgrade-Auto --iso /mnt/images/eole-2.7.2-alternate-amd64.iso

# Upgrade-Auto --iso http://mon.mirroir.local/pub/iso/EOLE-2.8/2.8.1/eole-2.8.1-alternate-amd64.iso

Complément

Consulter le manuel de la commande pour voir toutes les options :

# man Upgrade-Auto

Utiliser un fichier meta-release-lts alternatif

Le fichier meta-release-lts contient les adresses de tous les dépôts Ubuntu.

Dans un environnement sans accès direct à internet, on peut définir, via ce fichier, l'emplacement interne des dépôts à utiliser par Upgrade-Auto.

Dans l'interface de configuration du module, en mode expert, aller dans l'onglet Dépôt tiers.

La variable upgrade_auto_meta_release_repo permet de définir où est téléchargé le fichier meta-release-lts.

Upgrade-Auto pour les applications tierces

Vous pouvez inclure l'upgrade d'applications annexes.

Pour cela, il vous faudra créer un fichier .txt à l'emplacement suivant /usr/share/eole/upgrade/source.list.d/.

Puis indiquer à l'intérieur la version cible (donc la version vers laquelle vous voulez faire l'upgrade), le dépôt actuel, et le nouveau dépôt (celui qui permet d'avoir la version souhaitée) séparés par des ";".

ExempleExemple

Créer le fichier /usr/share/eole/upgrade/source.list.d/mtes.txt avec les lignes suivantes :

2.7.2;deb http://ppa.launchpad.net/slimbook/slimbook/ubuntu xenial main;deb http://ppa.launchpad.net/slimbook/slimbook/ubuntu bionic main

2.7.2;deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu xenial main;deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu bionic main

Puis lancer la commande Upgrade-Auto. Toutes les applications installées depuis le dépôt source seront mises à jour vers leur version du dépôt de destination.

Explication du contenu : 2.7.2 est la version vers laquelle nous souhaitons migrer, le premier ppa inscrit est celui qui est actuellement sur le serveur, le second est le ppa souhaité pour la version 2.7.2.

Mise à disposition

Le script Upgrade-Auto est disponible directement sur le serveur EOLE après mise à jour de celui-ci.

Fonctionnement général

Le script Upgrade-Auto permet d'effectuer la migration de façon automatique.

Les étapes sont :

  1. choix de la version EOLE de destination ;

  2. mise à jour des fichiers sources.list ;

  3. téléchargement des paquets ;

  4. installation des paquets ;

  5. mise à jour automatique des fichiers de configuration (*.eol) ;

  6. mise à jour des paramètres du serveur sur le serveur Zéphir si le serveur y est enregistré.

Procédure détaillée

Pré-requis

Par précaution, il est recommandé de faire une sauvegarde du serveur avant de lancer le script de migration.

La mise à jour du système n'est pas automatisée car elle est susceptible de poser des questions à l'utilisateur en cours d'exécution ;

RemarqueDKMS

La procédure de migration refusera de s'exécuter si elle détecte des pilotes compilés (DKMS[1]).

Les DKMS sont en effet susceptibles de faire échouer la procédure : impossibilité de démarrer sur le nouveau noyau, fichier présent dans le paquet DKMS fourni par un autre paquet en standard…

Attention

L'utilisation du script de migration est critique, il n'y a pas de retour en arrière possible une fois les paquets installés.

Réalisation de la migration

  1. Mettre à jour le serveur EOLE dans la dernière version mineure :

    # Maj-Auto

  2. Reconfigurer et re-démarrer le serveur (si nécessaire) :

    # reconfigure

    # reboot

  3. Lancer le script de migration  :

    # Upgrade-Auto

  4. Si le module utilise les conteneurs, comme c'est le cas pour AmonEcole, il faut recréer les conteneurs :

    # gen_conteneurs

  5. Convertir le fichier config.eol du module sauvegardé

    • Si le serveur est enregistré sur un module Zéphir, il est possible de préparer la configuration et de la récupérer avec la commande enregistrement_zephir :

      # enregistrement_zephir

    • Sinon, exécuter l'interface de configuration du module, vérifier les valeurs et enregistrer.

  6. Instancier et re-démarrer le serveur (si nécessaire) :

    # instance

    # reboot

Truc & astuce

Screen est une console virtuelle qui permet de détacher un terminal du processus appelant. Il permet notamment de récupérer la console virtuelle en cas de coupure du tunnel SSH.

Pour utiliser Screen :

# screen

Pour ouvrir une nouvelle console virtuelle :

Ctrl + a puis c

Pour passer d'une console à l'autre :

Ctrl + a + puis barre espace

Pour mettre Screen en tâche de fond :

# screen -D

Pour récupérer une session Screen :

# screen -x