Edubuntu serveur LTSP client d`un SE3 de S.Boireau et de P.Peter
Transcription
Edubuntu serveur LTSP client d`un SE3 de S.Boireau et de P.Peter
Howto: Edubuntu serveur LTSP client d'un SE3 de S.Boireau et de P.Peter Les ajouts en gris clair sont de P.Peter en date du 8 Août. Remarque: pour que ce document n'excède pas 40 Ko en taille (et puisse donc être diffusé en pièce-jointe sur se3-devel) j'ai supprimmé des sections (en le mentionnant) qui apparaissaient dans le document précédent et qui ne seront vraisemblablement plus utiles. Introduction: L'objectif de ce document est d'indiquer comment installer une distribution Edubuntu de façon à en faire un Linux client d'un serveur SambaEdu3 et... ... de faire tourner sur Edubuntu un serveur LTSP pour que des clients LTSP exploitent les ressources du serveur LTSP et soient également clients Linux du SE3. L'objectif est très intéressant. Je souhaitai utiliser des machines linux virtuelles dans mon établissement pour la facilité de mise en place et bien ce seront des clients légers d'un serveur LTSP Kubuntu. Ainsi seule l'installation et la mise à jour de la machine Kubuntu seront à faire. Et il sera possible de lancer sur les XP déjà en place sur le réseau pédagogique un client léger dans une machine virtuelle afin de se connecter à la machine serveur LTSP. --suppression n°1(premières configurations de test) -- Configuration de test: DHCP du SE3 opérationnel. Machines (toutes virtuelles dans VirtualBox) suivantes: - 1 Kubuntu704 (512 RAM) - 3 clients légers (64 RAM) - 1 SE3 (250 RAM) faisant DHCP provenant de la digloo v2.31 en ligne, en branche expérimentale et mis à jour donc en 1.02b2 I Installation d'une Kubuntu704 Insérer le CD dans le lecteur et veiller à booter sur le CD. Choisir la langue (F2). Valider le démarrage. En fin de boot, sur le bureau, une icône propose de procéder à l'installation d'Edubuntu. Effectuer l'installation. L'utilisateur dont on vous demande de choisir l'identifiant et le mot de passe est déclaré dans sudoers (en tant que membre du groupe admin, au sens kubuntu, et pourra effectuer des commandes réservées à root en les faisant précéder par sudo). Faire toutes les mises à jour et configurer Kubuntu704 en français (il faudra sans doute faire apt-get install kde-i18nfr) . Modifier le /etc/network/interfaces pour déclarer une IP en dur hors de la plage DHCP du se3. Cette IP sera utilisée dans l'étape suivante. II Modification du dhcpd.conf du SE3 On fait cette modification dès maintenant de façon à pouvoir tester la connexion d'un client léger dès que le serveur LTSP Kubuntu704 sera en place (voir IV). Il faut ajouter dans dhcpd.conf: group { # addresse IP du serveur LTSP qui va gérer les clients légers qui suivent next-server 192.168.1.11; # les adresses MAC et IP sont à adapter host clientleger1 { hardware ethernet 08:00:27:00:00:01; fixed-address 192.168.1.51; } host clientleger2 { hardware ethernet 08:00:27:00:00:02; fixed-address 192.168.1.52; } host clientleger3 { hardware ethernet 08:00:27:00:00:03; fixed-address 192.168.1.53; } # etc .. # routine indispensable if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else{ filename "/ltsp/i386/nbi.img"; } option root-path "/opt/ltsp/i386"; } ensuite: /etc/init.d/dhcp3-server force-reload Remarque: cela suppose de connaître les adresses MAC des clients légers sauf dans le cas d'utilisation de cliens légers virtuels dans VirtualBox car il est alors possible de définir l'adresse MAC que l'on souhaite. III Configuration initiale de cette Kubuntu704 en serveur LTSP apt-get update apt-get install ltsp-server ltsp-build-client Cette dernière commande engendre la construction de la structure des clients légers, de nombreux paquets sont téléchargés. A l'issue de cette phase on peut constater dans /opt l'apparition d'un dossier nommé ltsp qui contient la structure des clients légers. apt-get install openssh-server ltsp-update-sshkeys Remarque: cette dernière commande sera indispensable en cas de changement d'IP du serveur LTSP. IV Lancement d'un client léger Tenter une connexion avec un client léger: - la première ligne qui s'affiche contient l'adresse MAC du client - la seconde est: searching for server (DHCP) ...No IP.No IP.No IP La mention No IP peux s'afficher plusieurs fois et ensuite le client récupère son adresse IP et démarre. Se connecter avec un compte existant sur le serveur LTSP. V Installation des paquets pédagogiques et utilitaires apt-get install kdeedu gperiodic kgeography solfege gchempaint oregano wxmaxima ssystem apt-get install stellarium celestia apt-get install vlc firefox apt-get install pause café cigarette :-) Pour les plus jeunes: apt-get install childsplay gcompris VI « Intégration » de la machine serveur LTSP au SE3 Sur le SE3 executer le script: create_client_linux.sh (cette opération n'est à faire qu'une fois seulement) Sur le serveur LTSP: scp root@ip_du_se3:rejoin* . sudo ./rejoint_se3_ubuntu-6.sh Quelques nouveaux paquets sont téléchargés et on valide tous les choix proposés en répondant oui à « voulez-vous activer TLS sur LDAP? (votre serveur semble le permettre) . » A la fin petit message signalant qu'il faut configurer les locales pour être compatible avec le SE3. Je garde cela pour plus tard... Quitter la session et en ouvrir une nouvelle avec un compte du réseau SE3 :-) --suppression n°2-- Remarque: Lors de la déconnexion, les ressources ne sont pas correctement démontées pour les clients LTSP. J'ai donc bricolé un script /opt/bin/teste_et_demonte.sh mis en place par rejoint_se3_edubuntu-6.10_7.04.sh qui teste toutes les 5min si l'utilisateur est toujours connecté et si ce n'est pas le cas, tue les processus subsistant pour permettre le démontage. Etherboot: Si les vieux coucous destinés à faire office de clients LTSP ne peuvent pas booter sur le réseau, vous pouvez utiliser etherboot. Il faudra installer une mini-distrib comme en propose le choix PRT sur mon multiboot. Minalist, Tomsrtbt,... peuvent convenir aussi. Les images etherboot (fichiers nbi.img) sont créées automatiquement lors de la configuration du serveur LTSP (faite en III) et la déclaration dans le dhcpd.conf du SE3 permet de booter directement dessus. (Les images de boot sont stockées dans /var/lib/tftpboot/ltsp/i386). Donc il suffit de créer une disquette de démarrage, correspondant à la carte réseau du client léger et de booter le client léger avec cette disquette. Un formulaire en ligne permet de récupérer le pilote linux de cette carte réseau mais il faut d'abord.... ...Identifier le pilote: Booter sur une distrib live, par exemple SysRescCD présente sur mon multiboot. Lancer lspci: sysresccd ~ # lspci 00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03) 00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01) 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81) 00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01) 00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01) 00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 [Mobility FireGL 9000] (rev 02) 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01) 02:01.0 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20) 02:01.1 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20) 02:03.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04) sysresccd ~ # Repérer les lignes concernant le réseau. Ci-dessus: 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01) et 02:03.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04) Celle qui nous intéresse est l'interface filaire dont l'identifiant est 02:00.0 Recherche des précisions: sysresccd ~ # lspci -n | grep 02:00.0 02:00.0 0200: 14e4:165d (rev 01) sysresccd ~ # Ce qui nous intéresse, c'est 14e4:165d Remarque: on a le fabricant (14e4) et le modèle (165d) de la carte réseau, on peut donc aller directement sur le site http://rom-o-matic.net et il faudra choisir la carte (ROM/NIC) qui se termine par [0x14e4,0x165d] dans la liste déroulante. Et le pilote, si la carte est en eth0, il y a des chances qu'il soit donné ainsi: sysresccd ~ # basename $(readlink /sys/class/net/eth0/device/driver) tg3 sysresccd ~ # Cependant, sur le multiboot, si vous lancez net_setup.sh, les cartes réseau présentes devraient vous être proposées sous cette forme: sysresccd ~ # net_setup.sh Voici la liste des interfaces détectées: Interface: eth0 Infos: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet Pilote: tg3 Adresse MAC: 00:11:43:38:a5:35 Quelle interface voulez-vous configurer? [eth0] <CTRL+C pour interrompre> sysresccd ~ # Les indications données ici complètent celles requises pour rechercher le lanceur etherboot. (la liste des cartes et identifiants est disponible à cette adresse http://rom-o-matic.net/5.4.1/etherboot-5.4.1/src/bin/NIC) Remarque: Rendez-vous sur: http://rom-o-matic.net/5.4.1/ Dans « latest production release » cliquer sur le n° le plus « grand »: 5.4.3 Dans l'exemple ci-dessus, le choix à effectuer est: 1 Choose NIC/ROM type: sélectionner tg3:tg3-5705M -- [0x14e4,0x165d] Choose ROM output format: LILO/GRUB/SYSLINUX loadable kernel format (.zlilo) 2 « Choose ROM output format: » sélectionner 'Floppy bootable ROM image (.zdsk)' Cliquer sur « Get ROM » pour télécharger le fichier. Il faut alors copier ce fichier sur une disquette vierge formatée: – – – sous windows avec l'utilitaire rawritewin disponible à http://www.fdos.org/ripcord/rawrite/rawwritewin-0.7.zip sous Linux : cat nom_du_fichier.zdsk > /dev/fd0 Il suffit ensuite d’insérer votre disquette et de démarrer votre client (modification éventuelle du BIOS nécessaire). Le serveur DHCP (du SE3) va attribuer une adresse IP à la carte réseau, puis il lancera la procédure de démarrage du client. Remarque: si votre client léger n'a pas un lecteur de disquette fonctionnel il suffit à l'étape 2 « Choose ROM output format: » de sélectionner 'ISO bootable image ..(.iso)' ,de graver un CD à partir de cette iso et de booter dessus. Grub et etherboot: Supposons que vous avez une distribution installée avec Grub. Ajoutez le fichier eb-5.4.1-tg3.zlilo téléchargé sur rom-o-matic dans le /boot de la distrib et complétez ainsi le /boot/grub/menu.lst: title Boot client LTSP root (hd0,8) kernel /boot/eb-5.4.1-tg3.zlilo savedefault Lilo et etherboot: Editer le /etc/lilo.conf de la distribution installée. Ajouter une section: image = /boot/eb-5.4.1-tg3.zlilo label = Boot_client_LTSP root = /dev/hda9 en supposant que le /boot est sur /dev/hda9 Et réinstaller LILO en lançant: lilo <A VERIFIER> Les locales. Alors qu'avec Edubuntu 6.10, il était possible de reconfigurer les locales, avec la version 7.04, j'ai eu: root@edubuntu:/home/steph# dpkg-reconfigure locales Generating locales... en_AU.UTF-8... done en_BW.UTF-8... done en_CA.UTF-8... done en_DK.UTF-8... done en_GB.UTF-8... done en_HK.UTF-8... done en_IE.UTF-8... done en_IN.UTF-8... done en_NZ.UTF-8... done en_PH.UTF-8... done en_SG.UTF-8... done en_US.UTF-8... done en_ZA.UTF-8... done en_ZW.UTF-8... done fr_BE.UTF-8... up-to-date fr_CA.UTF-8... up-to-date fr_CH.UTF-8... up-to-date fr_FR.UTF-8... up-to-date fr_LU.UTF-8... up-to-date Generation complete. root@edubuntu:/home/steph# sans possibilité de sélectionner autre chose que de l'UTF8. Oui même pb pour moi avec toutes mes configurations de test. Lors de l'enregistrement avec gedit d'un fichier dans le home d'un utilisateur de SE3, j'obtiens un avertissement de gedit: Le fichier /home/<login>/<nom_fichier.txt> a été modifié sur le disque. Voulez-vous recharger le fichier. J'ai répondu Oui, mais je n'ai pas vu ce qui avait changé. J'ai eu aussi une alerte lors du login avec Gnome à propos des droits sur $HOME/.dmrc qui ne seraient pas corrects. =========================== Le fichier HOME/.dmrc de l'utilisateur a été ignoré. Ceci empêche de sauver la session et la langue par défaut. Le fichier devrait apparetenir à l'utilisateur et avoir les permissions 644. Le répertoire de l'utilisateur doit appartenir à l'utilisateur et ne doit pas être accessible en écriture par d'autres utilisateurs. =========================== Valider. Le login se fait quand même. J'ai vu ce cas une fois avec edubuntu mais pas avec kubuntu. --suppression n°3-- Compléments: 1) Clients légers MAC pour pouvoir utiliser des clients légers d'une autre architecture (style mac): https://help.ubuntu.com/community/UbuntuLTSP/LTSPCrossArchSetup 2) Mini-Problèmes non réglés - une fois edubuntu7.04serveur « intégré » via le script rejoint.... le fichier .xsession-errors dans le home d'un utilisateur se remplit vite à cause pb modules son. 3) Configuration des clients LTSP La configuration des clients légers se fait très simplement dans /opt/ltsp/i386/etc/lts.conf http://doc.ubuntu.com/edubuntu/handbook/C/ltsp-client.html#id2790094 Les option suivantes peuvent être intéressantes à ajouter dans la section [Default]: SOUND=False X_COLOR_DEPH=16 XKBLAYOUT=fr Remarque: les actions suivantes sont possibles - ajout d'un script de démarrage pour un client léger (une fois qu'il a entièrement booté) - montage d'un module (jusqu'à 10) - ajout d'un script à ltsp-client-setup qui est lancé pendant le boot client léger - connexion d'une imprimante au client léger - etc... 4) Documentation indispensable https://help.ubuntu.com/community/UbuntuLTSP http://doc.ubuntu.com/edubuntu/handbook/C/server.html http://www.ltsp.org/ 5) VirtualBox Si on installe VirtualBox sur des clients xp ou 2k alors on a des clients légers automatiquement ! (possibilité de création en ligne de commande d'une interface réseau pour une machine virtuelle avec une adresse MAC de son choix ce qui est évidemment intéressant pour renseigner le dhcpd.conf du serveur SE3). Je vais sans doute adopter cette solution car je ne dispose pas d'un nombre suffisant de prises réseaux dans le collège pour connecter des machines supplémentaires donc les clients légers seront des machines virtuelles installées automatiquement sur les xp existants (via se3-wpkg). Des XP avec 512 Mo de RAM suffisent. Pour la création des clients légers sous VirtualBox avec adresse MAC de son choix pas de problème le seul truc qui reste à étudier c'est de faire en ligne de commande sous wiondoze le « pontage » entre la carte réseau VirtualBox et la carte réseau réelle du XP. 6) ThinClientManager (équivalent de Italc ou de Cerbere sous Wiondoze) Dans edubuntu7.04serveur il y a un gestionnaire des clients légers qui permet de voir les utilisateurs connectés, d'envoyer un message, de fermer les sessions, d'executer une action sur le(s) client(s) léger(s), etc... exemple: sélectionner un utilisateur puis exécuter et saisir: gcalctool ou ooffice -writer :-) pour visualiser les bureaux des utilisateurs une petite configuration est à réaliser: https://wiki.edubuntu.org/InstallX11VncOnLtspClients Testé avec edubuntu7.04serveur et c'est tout bon :-) Avec Kubuntu c'est pas top :-( Il est préférable d'utiliser Italc...Car il est bien plus ergonomique et performant. Des adaptations sont à faire pour l'utiliser. <fifi: écrire la démarche> . 7) Spécifications matérielles du serveur LTSP et des clients légers http://doc.ubuntu.com/edubuntu/handbook/C/server-hw.html 8) Personnalisation de l'écran de login sur les clients légers L'écran de login est généré par ldm. Or suite à l'installation de LTSP sur Kubuntu l'écran de login utilise le thème Ubunutu (dès que l'on se connecte on retrouve le thème Kde). En fait l'explication est simple: dans /opt/ltsp/i386/usr/share/ldm/themes/ le fichier default est un lien « cassé » (pointant vers /etc/alternative/ldm-theme) Pour évenuellement corriger cela (et obtenir lécran de login Debian par exemple): rm /opt/ltsp/i386/usr/share/ldm/themes/default n -s /opt/ltsp/i386/usr/share/ldm/themes/theme_perso /opt/ltsp/i386/usr/share/ldm/themes/Debian Remarque pour utiliser un thème personnalisé: cp -r /opt/ltsp/i386/usr/share/ldm/themes/Edubuntu /opt/ltsp/i386/usr/share/ldm/themes/theme_perso rm /opt/ltsp/i386/usr/share/ldm/themes/default ln -s /opt/ltsp/i386/usr/share/ldm/themes/theme_perso /opt/ltsp/i386/usr/share/ldm/themes/default Et il suffit de modifier à sa convenance /opt/ltsp/i386/usr/share/ldm/themes/theme_perso (il serait bien de disposer d'un thème SE3 :-) )