DRBL
Fra GNUskole
Innhold |
DRBL (Diskless Remote Boot in Linux)
Prosjektet finner du her: http://drbl.sourceforge.net/
Vi har foreløpig installert dette som en test på skolen, men det ser spennende ut og vi kommer nok til å skrive en liten forklaring på hvordan du kan installere det på skolen din og hvordan du kan integrere det med et allerede eksisterent stort LTSP-system (som vi har på Harestad skole).
En helt vanlig installasjon
Hvis du vil teste DRBL er det ikke verre enn at du leser deg igjennom installasjonsforklaringen (les nøye!) og gjør det som står der. Jeg var tøff i trynet første gang og skummet igjennom forklaringen og gikk glipp av et par veldig viktig detaljer første gang jeg prøvde... ikke gjør det.
Forklaring for Fedora 11 og 12
Last ned fra http://drbl.sourceforge.net/download/nchc/stable/
wget http://drbl.nchc.org.tw/one4all/desktop/download/stable/RPMS/drbl-current.i386.rpm rm -f GPG-KEY-DRBL; wget http://drbl.sourceforge.net/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL yum -y localinstall drbl-current.i386.rpm /opt/drbl/sbin/drblsrv -i
Svar så godt du kan, men jeg anbefaler at du prøver ut ssi-utgaven av drbl. Du kan få litt baluba med valg av kjerne, men gå for valg nr. 2 om ikke valg nr. 1 fungerer.
/opt/drbl/sbin/drblpush -i
Svar igjen så godt du kan, men kan du gå for standardverdiene. Bare pass på hva du svarer på IP-serien i DHCP-biten.
Da skal det faktisk virke :-)
Integrer systemet i et større system
Vi bruker NIS og NFS fra før i vårt LTSP5-system. Hjemmeområder og fellesområder hentes fra ulike filtjenere via NFS og alle brukerne autentiseres via NIS. DRBL bruker NFS og NIS for å få informasjon fra hovedmaskinen ut til de tykke klientene uten harddisk og en standardinstallasjon vil ikke virke mot vårt system om en ikke gjør endringer i oppsettet av DRBL-maskinen.
En bug
I filen drbl-ssi-client-prepare er det en "feil" som endrer på alle IPer i fstab og yp.conf som måtte vise til noe annet enn hovedmaskinen i DRBL-oppsettet. Dette må "fikses" slik at ip-adresser til de riktige filtjenerne og NIS-tjeneren beholdes.
Linje 178 (sett et # foran perl -pi...)
# for YP # perl -pi -e "s/(domain.*server)[[:space:]]+.*/\$1 $nfsserver/g" /etc/yp.conf
Linje 148 (sett et # foran perl -pi...) - ikke nødvendig lengre!
# perl -pi -e "s/^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+:/$nfsserver:/g" /etc/fstab.mod
NFS
Egne monteringer
Du kan legge inn egne monteringer (bl.a. NFS) i filen /opt/drbl/conf/client-append-fstab Der kan du f.eks. legge inn...
192.168.1.10:/nfs/ansatte /home/ansatte nfs noatime,acl,defaults 0 0
Så må du kjøre kommandoen...
/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
...for å få endringene ut til de tykke klientene.
Tillat litt mer i exports
Av og til er det greit å være litt mer romslig med hvem som får montere nfs-delingene på DRBL-tjenerne. Hvis du skriver kommandoen...
drbl-nfs-exports -a generate
...vil DRBL-tjeneren dele ut NFS til alle subnettene hvor den er koblet opp.
Dette kan du legge inn i /opt/drbl/sbin/drblpush i linje 3686 slik at du slipper å gjøre det etter at du har kjørt drblpush-kommandoen.
# create NFS exports drbl-nfs-exports -a --no-restart generate
OBS! Har nettopp oppdaget enda en bug, denne gang i filen drbl-nfs-exports. Den setter inn 192.168.0.* /etc/exports når den vil at alle i 192.168.0.0-nettet skal ha tilgang, men det liker ikke NFS-tjeneren i Fedora - den skjønner det ikke og gir ikke tilgang. Du nå gjøre disse endringene i linje 135 til 139... (det er også noen linjer på 145, 151 og 156 som kanskje må ordnes)
$drbl_common_root $subnet.0/24($EXPORTS_NFS_RO_NRS_OPT) /usr $subnet.0/24($EXPORTS_NFS_RO_NRS_OPT) /opt $subnet.0/24($EXPORTS_NFS_RO_NRS_OPT) /home $subnet.0/24($EXPORTS_NFS_RW_NRS_OPT) /var/spool/mail $subnet.0/24($EXPORTS_NFS_RW_RS_OPT)
NIS
Du må inn i filen /etc/drbl/drblpush.conf og føye til under eth1 (eller tilsvarende nederst i conf-filen):
nisserver=192.168.1.10 (eller nå hva NIS-tjeneren din heter)
Hver gang du kjører drblpush-kommandoen ødelegges alle autentiseringsinstillinger du måtte ha laget til andre maskiner enn DRBL-maskinen. Du må inn i /etc/yp.conf og endre localhost til IPen til NIS-tjeneren din.
Juks...
Du kan gå inn i filen drblpush og endre på et par ting for å sette NIS-tjeneren -permanent-.
Linje 1689 endres for å ordne /etc/yp.conf:
domain $nisdomain server 192.168.1.10
Linje 3571 endres hvis du ikke gidder å legge inn nisserver i /etc/drbl/drblpush.conf som beskrevet over for drbl-klientene:
drbl-gen-client-files -l $language -h $ip -k \$keep_old_files_flag -n $nfsserver -a $label -i 192.168.1.10 \$pseudo_opt
Skru av DRBL sin DHCP-tjener
Hvis du vil integrere DRBL i den vanlige DHCP-tjeneren du kanskje har i produksjon må du skru av DHCP i DRBL-tjeneren. Den enkleste måten å gjøre dette på er å...
1) Fjerne dhcp-tjeneren:
yum remove dhcp
Hvis du av en eller annen grunn ikke bør/kan avinstallere dhcp-tjeneren kan du føye til exit som første linje i filen /etc/init.d/dhcpd (husk å stoppe dhcp-tjeneren først :-).
2) Skru av funksjonen i drbl-klienten som spør etter en IP fra en DRBL-tjener:
/opt/drbl/sbin/mknic-nbi -c n
Så nå du inn i dhcp-tjeneren din og føye til...
next-server 192.168.1.10; filename = "pxelinux.0";
...på alle de maskinen du vil ha over til DRBL-tjeneren.
Hva har vi gjort?
Vi har satt opp flere DRBL-tjenene med støtte for SSI - altså at det er en standard /etc- og /var-katalog som deles ut til alle klienter. DRBL-tjenerne har bare installert ett nettverkskort, så vi har gjort alt vi skriver om i dette avsnittet om å installere DRBL i et større system. Det vi ikke har skrevet særlig mye om er at hver DRBL-tjener (med sitt ene nettverkskort) er satt opp i alle subnett hvor det skal dele ut DRBL. Da har vi satt opp virtuelle nettverkskort på det ene (ekte) kortet som er installert. DRBL liker dårlig å gå på tvers av subnett, så tjeneren må finnes i hvert subnett hvor den deler ut data. Dette må du gjøre før du kjører drblpush -i.
Den ene DRBL-tjeneren er satt opp med ATI-drivere og deler da bare ut sitt bilde til ATI-maskiner med -nye- skjermkort. ATI-driveren støtter ikke gamle(!) ATI-skjermkort.
Den andre DRBL-tjeneren er satt til auto på skjermkort og deler ut DRBL til alle andre maskiner.
ATI-drivere
Hvis du tidligere har installert driverne direkte fra AMD-ATI må du avinstallere dem og reparere Mesa:
yum reinstall mesa-libGL
Oppdater kernel og restart maskinen:
yum update kernel reboot
Installer ATI-driver fra RPMfusion:
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm yum install kmod-catalyst xorg-x11-drv-catalyst xorg-x11-drv-catalyst-libs.i586
Legg merke til at vi her installerer i586-driveren - så du må passe på at det er denne kjernen du bruker på drbl-klientene dine!
Fjern i686-kjernen...
yum -y remove kernel-PAE.i686
...og reboot.
Ta kopi av de gamle initrd-filene og lag nye:
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.backup mkinitrd -v /boot/initrd-`uname -r`.img `uname -r`
Jeg vet ikke om det er nødvendig å føye til nopat i grub.conf (se under), men den som lever får se. Du må i så tilfelle huske å gjøre dette i /tftpboot/nbi_img/pxelinux.cfg/default for drbl-klientene (om det er nødvendig!):
gedit /boot/grub/grub.conf
splashimage=(hd3,1)/boot/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.29.2-126.fc11.x86_64) root (hd3,1) kernel /boot/vmlinuz-2.6.29.2-126.fc11.x86_64 ro root=UUID=f372564c-f1a7-430e-b97f-b250812e2c30 rhgb quiet vga=0x318 nopat initrd /boot/initrd-2.6.29.2-126.fc11.x86_64.img
Så må du aktivere driveren og kopiere xorg.conf over til drbl-klientene:
catalyst-config-driver enable cp /etc/X11/xorg.conf /tftpboot/nodes/192.160.1.100/etc/X11
Så må du kjøre for å oppdatere drbl-klientene:
/opt/drbl/sbin/update-drbl-client-kernel-from-server /opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
Ulempen med dette er at alle maskinene blir konfigurert med ATI, men det kommer vi tilbake til seinere.
NVIDIA-drivere
Automatisering
Slik at du kan bruke det i skript... (foreløpig en test spesifikk for DRBL inkludert i et større system!)
yum -y install drbl-current --nogpgcheck cd /opt/drbl/sbin/ ./drblsrv -i -t n -a n -n n -m n -x n -c n -g n -k 1 -o 1 -s -l 0 #Hm... ikke alle valg skjedde automatisk allikevel yum -y remove dhcp ./mknic-nbi -c no cp -a /home/ikt/fedora12/drblpush /opt/drbl/sbin/ cp -a /ho

