Depuis qu’Etch est stable, j’ai effectué quelques migrations Debian Sarge->Etch sur des serveurs en production (un serveur mail en frontal qui m’a appris qu’il était préférable de rebooter sur un noyau sans patch Grsecurity avant de migrer, un serveur mail LDAP/Postfix/Courier/Horde, une dedibox et quelques autres) mais finalement assez peu. Ce week-end, j’avais prévu de mettre à jour mon serveur personnel, ce qui n’est pas forcément trivial car j’ai pas mal de services (web, mail, CVS, SVN, NFS, LDAP…), l’installation date de plus de 4 ans (Woody à l’époque) et plusieurs tests/bidouillages/backports sont en place.
Pourquoi attendre autant ? Théoriquement Sarge reste maintenu jusqu’en avril 2008, donc rien ne presse si l’on a pas besoin des nouveaux logiciels d’Etch. Et surtout, j’applique le principe de précaution d’attendre un certain temps afin d’avoir une grande quantité d’informations disponibles sur Internet (ressources Debian, moteurs de recherche, blogs). Enfin, autant j’ai assez de liberté pour mon serveur personnel, autant je ne suis pas le seul décisionnaire pour des serveurs d’entreprise utiles à plusieurs dizaines ou centaines d’utilisateurs.
Bref, entrons dans le vif du sujet. Mes précautions sont d’effectuer des essais de migration avec un serveur de test, d’avoir des backups tout frais, de couper les services durant la phase de migration et de prévenir les utilisateurs à l’avance des perturbations. Ensuite, j’ai repris les Releases Notes, j’ai adapté mon sources.list puis :
# aptitude update && aptitude upgrade # aptitude install initrd-tool
Pas de problème particulier à noter jusqu’ici. Ensuite, je dois mettre à jour mon noyau :
# uname -a Linux serveur 2.4.27-3-k7 #1 Wed Dec 6 00:10:25 UTC 2006 i686 GNU/Linux # aptitude install linux-image-2.6-k7
Comme prévu, udev a râlé un peu à cause de mon noyau 2.4, mais rien de bien grave. Par contre, cela s’est passé moins bien avec LILO qui a semblé un peu perturbé par tous ces changements :
# lilo Warning: '/proc/partitions' does not match '/dev' directory structure. Name change: '/dev/scsi/host0/bus0/target0/lun0/disc' -> '/dev/sda' Fatal: VolumeID read error: sector 0 of /dev/sda not readable
Je n’avais pas le temps d’investiguer et j’ai décidé de tenter ma chance avec GRUB.
# aptitude install grub && grub-install /dev/hda/ && update-grub
La phase grub-install est très longue mais ça s’est bien passé lors du reboot à la fin de la mise-à-jour.
Ensuite, c’était la mise-à-jour de tout le reste des logiciels :
# aptitude dist-upgrade
Je vous fais grâce des messages/questions debconf et les mises-à-jour des conffiles (à ce sujet, pour info, j’ai pour réflexe de visualiser les différences avant de choisir de garder l’ancienne version ou pas, et je garde des notes pour y revenir en fin de mise-à-jour). Passons maintenant aux divers problèmes rencontrés :
– mod_security
Starting web server (apache2)... apache2: Syntax error on line 116 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/mod-security.load: Cannot load /usr/lib/apache2/modules/mod_security.so into server: /usr/lib/apache2/modules/mod_security.so: cannot open shared object file: No such file or directory failed
Pour des raisons de licence, mod_security n’est plus dans Etch (on peut utiliser les packages upstream si on le souhaite).
– Authentification HTTP avec LDAP
Invalid command 'AuthLDAPEnabled', perhaps misspelled or defined by a module not included in the server configuration
J’ai du adapter mes configurations de la façon suivante :
#AuthLDAPEnabled on AuthBasicProvider ldap #AuthLDAPAuthoritative on AuthzLDAPAuthoritative Off
– Apache-SSL
Syntax error on line 75 of /etc/apache-ssl/httpd.conf: Invalid command 'TypesConfig', perhaps mis-spelled or defined by a module not included in the server configuration
Il s’agit d’un reste d’une fameuse migration Apache 1->2 ;) Ne l’utilisant plus, je me suis contenté de le supprimer et j’ai ouvert un petit bug pour améliorer le httpd.conf : #441447
– Bugzilla
Could not execute `/etc/bugzilla/localconfig'! ; make sure permissions are ok. at /usr/share/perl5/Bugzilla/Config.pm line 161. Compilation failed in require at /usr/share/bugzilla/lib/checksetup.pl line 505. BEGIN failed--compilation aborted at /usr/share/bugzilla/lib/checksetup.pl line 505. ERROR: Unable to find /usr/share/bugzilla/debian/params.new
Je n’arrive plus à repoduire ce problème après avoir désinstallé et réinstallé Bugzilla avec dbconfig. On va donc considérer cela comme une solution.
-Authentification LDAP avec Courier
Le fichier authldaprc a légèrement changé de syntaxe :
#LDAP_SERVER 127.0.0.1 #LDAP_PORT 389 LDAP_URI ldap://127.0.0.1
– Serveur NFS
Afin que le service NFS fonctionne correctement, j’ai du temporairement ajouter des autorisations sur udp/817, udp/896 et tcp/4984 sur le firewall du serveur. Je dois probablement revoir mes diverses options pour forcer les ports de mountd, lockd & co. (RPCMOUNTDOPTS, RPCSTATDOPTS et les options lockd.tcpport, lockd.udpport). Vu que cela “juste marche” pour l’instant, j’ajusterai ces paramètres “plus tard”.
– Onduleur sur le port série
Le logiciel Nut ne fonctionnait plus, mais c’était simplement une question de droits sur le périphérique /dev/ttyS0
– Problèmes mineurs
J’obtiens des messages récurrents du kernel :
parport0: FIFO is stuck parport0: BUSY timeout (1) in compat_write_block_pio DMA write timed out
Ils sont du à un ancien CUPS qui traînait dans le coin pour une imprimante sur le port parallèle plus branchée depuis un certain temps…
J’ai du remettre Vim en éditeur par défaut :
# update-alternatives --config editor
Voilà pour cette migration. Rien d’extraordinaire, mais je trouve intéressant de prendre la peine de noter les petits problèmes rencontrés (ne nécessitant pas forcément un rapport de bug) sur mon blog afin d’informer (voire aider ;) d’autres personnes qui pourraient avoir des soucis similaires. Un bon complément des Releases Notes. Je vais essayer de le refaire pour d’autres migrations, et n’hésitez pas à faire de même !
[…] n’ai pas oublié mon idée de bloguer sur des migrations Sarge->Etch qui le méritent. Voici donc un deuxième volet avec un petit serveur d’entreprise comprenant les services […]
[…] les épisodes [0] et [1], voici la mise-à-jour d’un poste de travail mono-utilisateur KDE/Mozilla/OpenOffice, […]
[…] nouvel exemple de migration (après [0],[1] et [2]) qui concerne cette fois un serveur de messagerie […]
[…] la même optique que mes précédents exemples de migration Debian Sarge->Etch ([0], [1], [2] et [3]), je repars sur une série portant sur des migrations Debian Etch->Lenny. Je […]