- Présentation
- Préparation du
se3 Squeeze
- Migration vers un
se3-Wheezy
- Réparer
Grub
? - Configurer l'onduleur
- Post-migration
- Utiliser les scripts de sauvegarde/restauration
Cet article propose une procédure qui vous permettra de migrer, en toute sénérité, votre se3-squeeze
vers un se3-wheezy
.
Cet article est une synthèse réalisée à partir d'échanges collaboratifs parus sur la liste de dicussion de l'académie de Cæn [email protected]
: il est donc en évolution en fonction des questions, des réponses et précisions apparues lors de la discussion sur cette liste.
Remarque 1 : il se peut que les infos des derniers échanges ne soient pas encore intégrées ; cela prend un certain temps…
Si des intérrogations surgissent au cours de la lecture de cet article, n'hésitez pas à les partager sur la liste.
Remarque 2 : Si vous avez encore un se3-lenny
ou une version antérieure, le mieux est d'utiliser les script de sauvegarde/restauration : cela est détaillé ci-dessous avec la méthode alternative qui est valable aussi pour migrer d'un se3-squeeze
vers un se3-wheezy
.
Remarque 3 : Vous pourrez vous entraîner sur un réseau se3 virtuel
, ce qui vous permettra de le faire ensuite plus sereinement sur votre précieux se3
si cela vous semble nécessaire. Bien sûr, ce n'est pas obligatoire et le script fonctionne très bien maintenant. L'article ci-dessous, un peu ancien et il faudrait le mettre à jour, vous guidera pour la mise en place d'un réseau virtuel.
http://wiki.dane.ac-versailles.fr/index.php?title=Installer_un_r%C3%A9seau_SE3_avec_VirtualBox
Remarque 4: Si vous n'êtes pas zen à l'idée de lancer la procédure de migration, vous pouvez fabriquer une image de votre serveur actuel avec un disque dur externe et le logiciel open-source 'Clonezilla'. Ainsi, en cas de problème, il sera possible de restaurer facilement et rapidement le se3 dans sa configuration d' avant migration. Plus d'informations ici.
→ avoir corrigé les divers sources.list : normalement la mise à jour récente du se3 devrait le faire.
Sur un se3-squeeze
à jour (Version 2.4.9299 à la date de rédaction de cet article), /etc/apt/sources.list contient :
deb http://archive.debian.org/debian squeeze main contrib non-free
deb http://archive.debian.org/debian squeeze-lts main contrib non-free
…et /etc/apt/sources.list.d/se3.list contient :
# sources pour se3
deb http://wawadeb.crdp.ac-caen.fr/debian squeeze se3
#### Sources testing desactivee en prod ####
#deb http://wawadeb.crdp.ac-caen.fr/debian squeeze se3testing
#### Sources XP desactivee en prod ####
#deb http://wawadeb.crdp.ac-caen.fr/debian squeeze se3XP
→ créer le fichier /etc/apt/apt.conf (normalement, il n'existe pas)
touch /etc/apt/apt.conf
→ l'éditer (avec nano
par exemple)
nano /etc/apt/apt.conf
…et y coller la ligne suivante :
Acquire::Check-Valid-Until false;
Inutile, cela sera fait par le script de migration ; cependant, pour les angoissés, voici quelques commandes utiles pour cette mise à jour :
aptitude update
aptitude safe-upgrade
aptitude -P full-upgrade # selon la réponse, validez
bash /usr/share/se3/scripts/se3_update_system.sh
Remarque : si le se3-squeeze
est à jour, vous disposerez, de ce fait, de la dernière version du script. D'ailleurs, le script de migration vérifie que le se3
est bien à jour et, sinon, il le met à jour ; c'est pour cette raison que vous devez le relancer pour bénéficier de la version la plus à jour du script de migration.
Dans l'inteface web, entrée Informations système/Espace disques
, le répertoire racine /
est en orange ou en rouge : il n'y aura sans doute pas assez de place pour mener à bien le changement de version.
Si vous êtes dans ce cas, pas de panique, consultez la page spéciale "je manque de place".
Franck : "le script supprime immédiatement celui du compte admin et les autres sont supprimés en arrière plan. Cela étant je vais peut être modifier cela pour être certain qu'il ne traîne plus rien à la fin du script." Il n'est pas interdit de le faire préventivement.
rm -rf /home/profiles/*
En faisant ça, les raccourcis firefox dégagent, non ?
Si cela fait partie de l'arborescence
/home/profiles/
, oui, en effet. Cependant, il me semble qu'il est plutôt dans le/home
de l'utilisateur : il n'est donc pas touché.
Précision de Franck : seuls, les favoris
IE
passent à la trappe.
Sur les données utilisateurs, vous perdrez peu de choses : les favoris Windows, les favoris internet explorer (IE), tout ce qui est dans le profil V2.
NB : comme cette opération de suppression risque d'être assez longue, il vaut mieux la lancer en utilisant une session screen
; voir ci-dessous pour sa mise en œuvre.
En accord avec une bonne pratique de sauvegarde des données, vous avez mis en place les sauvegardes backuppc
et sauveserveur
(pour cette dernière, la plus importante, voir ci-dessous la solution alternative). Il vaut mieux les démonter pour éviter des surprises lors de l'exécution du script de migration.
Le script démonte le disque monté sur /var/lib/backuppc
mais pas celui monté sur /sauveserveur
.
umount /var/lib/backuppc
umount /sauveserveur
…et on débranche pour éviter un remontage automatique. Voir ci-dessous.
Si cela n'est déjà en place, nous vous recommendons chaudement de procéder à la sauvegarde du type sauveserveur
dont nous avons parlé ci-dessus et qui est documentée dans la solution alternative ci-dessous, avant de lancer le script de sauvegarde ; vous ferez plus sereinement la migration.
De toute façon, il est prudent de les prévenir en leur demandant de procéder à une sauvegarde de leurs données… Ce qu'ils devraient toujours faire.
Par ailleurs, il faut que le se3
ne soit pas utilisé pendant la migration.
Le mieux est de couper le se3
du reste du réseau (si cela est possible) pour éviter que des utilisateurs tentent de s'y connecter ; je pense cela préférable vu qu'à la fin du script de migration s'exécute en arrière plan un script qui efface tous les profils et réencode les home en UTF-8
, c'est très long !
Pour couper le se3
du reste du réseau vous pouvez utiliser un commutateur (ou switch) sur lequel vous branchez uniquement le se3
, la passerelle (par exemple l'Amon
) et un ordinateur pour ouvrir une session root
sur le se3
via un terminal
. Bien entendu, sur l'ordinateur utilisé, ouvrir une session locale…
Ou alors, faites la migration lorsque vous êtes sûr qu'aucune personne ne sera présente pour ouvrir une session et que tous les clients (linux ou windows) seront éteints.
Ou alors, désactiver le dhcp
en étant sûr que les bails ont tous expirés et qu'aucun utilisateur n'aura l'idée de mettre son client en ip fixe.
Si on dispose d'un serveur owncloud relié au ldap du se3, alors il faut également l'éteindre pour éviter un usage des fichiers de session de l'extérieur.
Il vous faut une journée pour être sûr que tout soit bien fait.
screen
est une session particulière en ce sens que vous pouvez la quitter sans que le processus soit arrêté, contrairement à une session normale.
Vous trouverez une brêve documentation de l'utilisation d'une session screen
qui vous permettra de découvrir cet outil, indispensable dans certaine situation.
L'utilisation de screen
est d'ailleurs suggérée par le script.
Dans une session screen
, lancez la commande suivante :
bash /usr/share/se3/sbin/se3_upgrade_wheezy.sh
Une première utilisation de ce script a lieu puis il faudra le relancer pour poursuivre la migration : les messages donnés à l'écran précisent tout cela très clairement.
Pendant cette première utilisation, le script vérifie qu'il a la dernière version stable avec cette url
:
C'est une des raisons pour lesquelles le script doit être relancé. Avec la 2ème utilisation du script, on sera donc avec la version stable de ce script.
Remarque : il existe une version de dev' (qui sera bientôt transférée en version stable) et qui est, quant à elle, désormais sur le github
:
https://github.com/SambaEdu/maintscripts/blob/master/migration/se3_upgrade_wheezy.sh
Cette version de dev' ajoute quelques fonctions au script comme la possibilité d'utiliser des options afin de se trouver dans différents modes : debug, pas de téléchargement ou encore préchargement des paquets dans le cache apt
.
Les voici (ces options ne servant que pour la mise au point du script, vous n'avez pas à les utiliser) :
- --download | -d : préparer la migration sans la lancer en téléchargeant uniquement les paquets nécessaires
- --no-update : ne pas vérifier la mise à jour du script de migration sur le serveur centrale mais utiliser la version locale
- --debug : lancer le script en outrepassant les tests de taille et de place libre des partitions. À NE PAS UTILISER EN PRODUCTION
Il n'est pas nécessaire de redémarrer…
Mais ce n'est pas interdit ;-) C'est comme vous voulez.
reboot
Il se peut que Grub
soit cassé à la suite de la migration ; il suffit de le réparer.
Cependant, il faudrait voir dans quel cas cela arrive pour palier ce problème.
Récupérer l'archive iso
de boot-repair
:
Graver un DVD (pas fait, je n'en ai pas eu besoin) avec cette archive iso
.
Il suffit d'accepter la réparation proposée par boot-repair : au redémarrage du se3, grub devrait être réparé.
À noter :
Si la réparation proposée par boot-repair
ne résout toujours pas le problème grub
du se3
, il est toujours possible, dans l'attente de trouver une solution alternative, d'utiliser super-grub2
pour faire booter son se3.
Pour cela, téléchargez puis gravez l'iso disponible à l'adresse suivante :
http://www.supergrubdisk.org/category/download/supergrub2diskdownload/
Bootez sur le cd super-grub2
: le se3
devrait alors se lancer.
Marc : "
grub-repair
n'avait pas marché (deux jours de chaos au lycée). J'avais réussi à réinstallergrub
en suivant la procédure enchroot
du site ci-dessous (j'avais fait les deux techniques de cette partie… Les deux m'indiquaient un message d'échec mais c'était reparti !)"
Si l'installation du se3
a été faite sur un disque de taille importante (2To...donc en format GPT
) avec des partitions classiques, alors la partition de 100 Mio servant au démarrage n'a pas été créée par l'installateur Debian sur le disque contenant la racine.
La mise à jour du Grub
va donc échouer pour donner une invite >grub rescue
après un reboot. Aucune des solutions précédentes ne marchera tant que la partition de boot ne sera pas présente.
La seule solution pour faire repartir le serveur dans ce cas est donc:
- Créer une image
Clonezilla
du disque contenant la racine au cas où, - Utiliser une version de
Gparted
récente à partir d'un live cd (sysrescuecd
par exemple). Le formatXFS
des partitions/home
et/var/se3
doit être reconnu. Si un trinagle d'alerte arrive, alors il faut prendre une version plus récente, - Diminuer la taille de la partition
sda1
de façon à liberer environ 100 Mio en début de disque. Valider pour que la modification se fasse, - Créer une nouvelle partition avec ce petit espace liberé en début de disque. Ne pas la formater mais lui donner le drapeau
bios-grub
, - Redémarrer avec le dvd
boot-repair
et faire "réparer le grub". Tout devrait repartir.
Normalement, la migration ne doit pas modifier la configuration de l'onduleur.
D'ailleurs, si cette configuration n'a pas était faite sur votre se3-squeeze
,une fois la migration effectuée il sera plus que temps de la mettre en chantier, en vous aidant des indications de l'article suivant. Là, vous n'aurez pas d'excuses en cas de pépin…
Cependant, il vaudra mieux configurer l'onduleur avant la migration car s'il y a un problème sur l'alimentation électrique ou des micro-coupures, ce sera plus chaud pour vous ;-) Mais vous aurez pris, de toute façon, la précaution d'avoir une sauvegarde de type sauveserveur
à jour (voir la remarque 2 de la présentation ci-dessus ou bien la solution alternative ci-dessous) avant de passer aux choses sérieuses…
Si après le passage à Wheezy il est impossible d'ouvrir une session, sauf celle du compte admin et si dans l'interface web le bouclier de vérification du compte adminse3 d'intégration des comptes est au rouge, c'est que votre annuaire n'est pas compatible.
La cause est un défaut de structure de l'annuaire : le GID des utilisateurs n'est pas correctement renseigné.
Pour régler temporairement cette situation, le temps de rendre compatible l'annuaire, il suffit de changer un paramètre de Yes à No dans le fichier /etc/samba/smb.conf
. Dans ce fichier, trouvez la ligne correspondant à ldapsam:trusted
et changez Yes
en No
.
Ensuite, il faut rendre compatible l'annuaire ldap. Indispensable ! Voir ci-dessous quelques compléments qui vous permettront d'analyse votre annuaire.
Pour rendre compatible votre annuaire, voici une procédure, proposée par François-Xavier Vial :
- Modifier (ou vérifier) sur l'interface pour le groupe
lcs-users
le GID Number à 5005 - Modifier (ou vérifier) sur l'interface dans Configuration générale - Paramètres serveur la valeur de la ligne Groupe par défaut à 5005
- Dans l'annuaire en utilisant
PhpLdapAdmin
, vérifier que le groupelcs-users
a bien 5005 commme gidNumber - Vérifier que tous les utilisateurs ont bien un gidNumber positionné à 5005
- Si ce n'est pas le cas, utiliser le script se3-corrige-gidNumber.sh qui va redresser les choses
- Vérifier que le paquet inetutils-inetd est installé : dpkg --status inetutils-inetd | grep Status
- S'il n'est pas installé : apt-get install inetutils-inetd
- Vérifier les attributs du groupe
lcs-users
(voir ci-dessous) et, si nécessaire, lancer le script restaure_ldap.sh - Re-modifier le fichier
/etc/samba/smb.conf
avec unldapsam:trusted = Yes
- Redémarrer samba
- Vérifier que ça fonctionne
Lors de la vérification des attributs du groupe lcs-users
, il sera sans doute nécessaire d'effectuer les actions suivantes pour ce groupe, via l'interface web du se3 (Annuaire → Administration LDAP → phpldapadmin : Explorateur LDAP):
- ajouter un objetClass : sambaGroupMapping
- mettre sambaGroupType à 2
- mettre sambaSID avec le sambaSID des utilisateurs que l'on retrouve dans la branche people
- ajouter un nouvel attribut description : Domain Unix group
- ajouter un nouvel attribut displayName : Utilisateurs du domaine.
Remarque : cette modification des attributs est faite par le script restaure_ldap.sh : il faut donc l'utiliser si les attributs ne sont pas corrects.
Pour savoir si l'annuaire ldap
est compatible, on peut l'exporter au format ldif
(via l'interface web du se3
) pour y regarder de plus près. Le plus souvent c'est une incohérence entre Guidnumber / Mappage du groupe par défaut.
La bonne valeur, c'est 5005 pour tout le monde qui lui même correspond à lcs-users
qui doit être mappé sur le groupe windows "utilisateurs du domaine" dont le primary group SID se termine par 513.
On peut aussi avoir des informations via quelques commandes à l'aide de ldapsearch
, getent
et net groupmap
.
Exemple :
Sur un compte lambda hugov
, on devrait obtenir :
#> ldapsearch -xLLL uid=hugov gidnumber sambaPrimaryGroupSID
dn: uid=hugov,ou=People,ou=stage,ou=ac-rouen,ou=education,o=gouv,c=fr
gidNumber: 5005
sambaPrimaryGroupSID: S-1-5-21-3271951266-3673128075-3782327119-513
Et pour le groupe lcs-users, on devrait obtenir :
#> getent group lcs-users
lcs-users:x:5005:admin
À comparer avec :
#> net groupmap list | grep lcs-users
Utilisateurs du domaine (S-1-5-21-3271951266-3673128075-3782327119-513) -> lcs-users
On notera que le SID
des "Utilisateurs du domaine" du domaine est le même que celui déclaré dans l’attribut sambaPrimaryGroupSID
de l'utilisateur.
Si tu as juste un export de l'annuaire au format ldif
, tu ne pourras pas utiliser la commande net groupmap
mais tu vas trouver ceci dans ton export ldif (toujours dans le même exemple) :
dn: cn=lcs-users,ou=Groups,ou=stage,ou=ac-rouen,ou=education,o=gouv,c=fr
objectClass: posixGroup
objectClass: top
objectClass: sambaGroupMapping
cn: lcs-users
gidNumber: 5005
memberUid: admin
sambaSID: S-1-5-21-3271951266-3673128075-3782327119-513
sambaGroupType: 2
displayName: Utilisateurs du domaine
description: Domain Unix group
Là dans mon exemple tout est cohérent et donc tout va bien.
S'il y a visiblement un de ces éléments qui ne va pas, reste à trouver lequel. En général c'est gidNumber qui ne correspond pas (rappel : il faut qu'il soit à 5005). Pour corriger cela, voir ci-dessus la procédure proposée par François-Xavier.
Après migration, impossible de faire un ping sur la passerelle Amon
ou sur une adresse externe. Je me suis alors aperçu que la carte réseau eth0
était maintenant devenue eth1
.
Il a fallut éditer le fichier /etc/network/interfaces
et remplacer eth0
par eth1
. Un reboot a été nécéssaire (la commande /etc/init.d/networking restart ne marchait pas complètement).
Presque tous les modules ont été reportés sur Wheezy
. Mais se3-unattended
a disparu (voir ci-dessous) et se3-internet
est en testing pour l'instant.
Module se3-pla
: c'est le nouveau paquet permettant l'exploration de l'annuaire Ldap. À vous de l'installer :
aptitude install se3-pla
Module se3-ocs
: il est désinstallé et purgé lors de la migration. Il est ré-installable ensuite. se3-ocs
, version Wheezy
, sera vierge comme l'a précisé Franck. Tout est effacé du passage de se3-squeeze
à se3-wheezy
pour éviter des problèmes de base de donnée.
Module se3-maintenance
: il a disparu (peut-être sera-t-il remis).
Module se3-unattended
: ce module n'est pas supprimé lors de la migration contrairement à se3-ocs
. Par conséquent si vous l'avez installé sous se3-squeeze
vous conserverez cette version sous se3-wheezy
. Simplement le module n'étant plus maintenu, il n'a pas été reporté sous Wheezy
dans une nouvelle version.
Le paquet wpkg wsuoffline
: Laurent : "pour ce paquet wpkg, j'ai l'impression qu'il ne fait pas les mises à jour correctement sur W7 de manière automatique. Il faudrait que je jette un œil sur un poste pour en être sûr".
Remarque : ne vous embêtez pas à mettre votre se3-Wheezy
en testing, la branche stable est suffisamment bien peuplé.
Il suffit de rebrancher les disques et deux solutions se présentent :
- soit redémarrer le serveur si des entrées dans le fichier
/etc/fstab
concernent ces disques, - soit de les monter conformément aux indications de la documentation.
Remarque : toutes les machines bakuppc
sauvegardées antérieurement disparaissent mais il suffit de les recréer avec un nom identique pour retrouver les sauvegardes antérieures.
Un certain nombre de vérifications sont nécessaires :
- vérifier la présence du paquet
rsyslog
apt-cache policy rsyslog
On devrait obtenir ceci :
rsyslog:
Installé : 5.8.11-3+deb7u2
Candidat : 5.8.11-3+deb7u2
Table de version :
7.6.3-2~bpo70+1 0
100 http://ftp.fr.debian.org/debian/ wheezy-backports/main i386 Packages
*** 5.8.11-3+deb7u2 0
500 http://ftp.fr.debian.org/debian/ wheezy/main i386 Packages
500 http://security.debian.org/ wheezy/updates/main i386 Packages
100 /var/lib/dpkg/status
Si le paquet est absent, on devrait obtenir ceci :
rsyslog:
Installé : (aucun)
Candidat : 5.8.11-3+deb7u2
Table de version :
5.8.11-3+deb7u2 0
500 http://ftp.fr.debian.org/debian/ wheezy/main i386 Packages
500 http://security.debian.org/ wheezy/updates/main i386 Packages
Il faut alors l'installer :
apt-get install rsyslog
Si à la suite de la migration d'un se3 32-bits
squeeze
vers wheezy
il est impossible de se connecter sur les postes, alors que tout est vert sur l'interface de diagnostique, il se peut que le paquet samba-vfs-modules
ne soit pas installé sur le serveur.
La commande suivante devrait résoudre le problème :
apt-get install samba-vfs-modules
Au lieu d'utiliser le script de migration ci-dessus, une autre solution est la suivante :
- créer le répertoire /run/lock (nécessaire au fonctionnement du script
sauve_se3.sh
) - sauvegarder votre serveur (script
sauve_se3.sh
) - installer un
se3-wheezy
, par la méthode de votre choix - configurer les modules adaptés à votre situation
- restaurer votre serveur (script
restaure_se3.sh
)
Cette méthode sera à utiliser si vous avez une version antérieure à celle de se3-squeeze
.
Ces deux scripts (sauve_se3.sh
et restaure_se3.sh
) sont proposés sur le site ci-dessous, ainsi que la documentation d'utilisation.
Il est à noter que ces deux scripts ne sont pas sur votre se3-squeeze
dans une version la plus à jour possible (et tenant compte des divers correctifs et modifications apportés). Il faudra donc utiliser les versions les plus récentes dont vous pourrez consulter la doc d'utilisation.
Remarque : le répertoire /run/lock/
n'est disponible qu'à partir de la version Wheezy
et sert à poser un verrou pour éviter de lancer le script sauve_se3.sh
si une sauvegarde est toujours en cours. La création de ce répertoire ne sera plus nécessaire pour les versions à partir de Wheezy
. Pour la création de ce répertoire, on pourra utiliser la commande suivante :
mkdir -p /run/lock
Il se peut qu'un problème concerne l'annuaire Ldap
après la restauration : des messages d'erreurs apparaissent lorsqu'on se connecte sur l'interface web du se3.
Voici comment corriger cela :
- Éditer avec "nano" ou "vi" le fichier
/etc/ldap.secret
- Relever le mot de passe contenu dans ce fichier afin de remplacer celui
de adminPw (administrateur de l'annuaire) dans les paramètres
LDAP
de l'interface web du mode sans échec (http://IP_SE3:909/setup) - Ne pas oublier de valider les modifications (bouton situé en bas de l'interface setup)
Sur se3-wheezy
on est full utf8
, et samba 4
n'aime pas du tout les noms de fichiers avec des accents codés en iso
. Cela fait quelques versions que nous sommes en utf8
côté samba
mais, pour autant, s'il y a eu des versions successives, il y a de fortes chances que de le codage iso
traîne encore dans /home
et /var/se3
.
La solution à ce problème s'il apparaît, c'est de réencoder avec /usr/bin/convmv
. Cela fonctionne très bien mais demande d'analyser tous les fichiers.
Les deux commandes ci-dessous réencodent en utf8
et ont été intégrées au script de restauration dans sa version la plus récente :
/usr/bin/convmv --notest -f iso-8859-15 -t utf-8 -r /home 2>&1 | grep -v Skipping >> rapport_home.log
/usr/bin/convmv --notest -f iso-8859-15 -t utf-8 -r /var/se3 2>&1 | grep -v Skipping >> rapport_varse3.log