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 :-) )