DRBL

Fra GNUskole
Hopp til: navigasjon, søk

DRBL (Diskless Remote Boot in Linux)

Prosjektet finner du på http://drbl.sourceforge.net/

DRBL betyr Diskless Remote Booting in Linux og likner en del på tynne klienter, men istedet for at du får tynne klienter mot en terminaltjener får du her en DRBL-tjener som deler "seg selv" ut til tykke klienter (som da ikke trenger noen harddisk). Fordelen DRBL har overfor tynne klienter er at DRBL er tykke klienter og takler derfor flash, lyd, film og alle andre tunge ting mye bedre enn tynne klienter gjør. Ulempen er at klientene bør være relativt kraftige (>=1024MB minne og en passe moderne Intel i-ett-eller-annet-prosessor).

I løpet av skoleåret 2011-2012 rullet vi ut DRBL med CentOS 6.2 på alle nye maskiner og alle gamle maskiner som takler det. Det betyr at alle maskiner med mer enn 1GB minne blir lagt over fra LTSP til DRBL. Det er nokså enkelt å la begge systemer leve side om side siden vi bruker NFS og LDAP.

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 CentOS

Last ned siste utgave fra http://drbl.sourceforge.net/download/nchc/unstable/ og installer den på maskinen. Pass på at du har skrudd av SELinux på CentOS-installasjonen!

rm -f GPG-KEY-DRBL; wget http://drbl.sourceforge.net/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
yum -y localinstall drbl-*.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 valget om den kjernen maskinen du installerer på bruker.

(OBS! Ta innom filen /etc/hosts og slett linjen som begynner med ::1 (den kan lage bråk seinere).)

Skriv så...

drblpush -i

(I den siste utgaven av DRBL er sentrale filer lagt i stien (i /usr/bin og /usr/sbin), mens alle filer før lå katalogen /opt/drbl/) Svar igjen så godt du kan, men du kan godt gå for standardsvarene. 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 LDAP og NFS i vårt system. Hjemmeområder og fellesområder hentes fra ulike filtjenere via NFS og alle brukerne autentiseres via LDAP. 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-tjeneren.


NFS

Du kan legge inn egne monteringer (bl.a. NFS) i filen /etc/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


LDAP

Om du bruker LDAP til å autentisere brukere må du gjøre to endringer for å alt til å fungere godt med DRBL-klientene (på godt norsk - klare å logge deg på). Du må selvfølgelig ha satt opp DRBL-tjeneren til å autentisere brukere mot LDAP-tjeneren.

Så er det noen endringer i /usr/sbin/drblpush i linje 3260 (eller i nærheten - dette endrer seg litt fra versjon til versjon)...

perl -pi -e "s/^passwd:.*/passwd:     files nis/" $drbl_common_root/etc/nsswitch.conf
perl -pi -e "s/^shadow:.*/shadow:     files nis/" $drbl_common_root/etc/nsswitch.conf
perl -pi -e "s/^group:.*/group:     files nis/" $drbl_common_root/etc/nsswitch.conf
perl -pi -e "s/^hosts:.*/hosts:     files nis dns/" $drbl_common_root/etc/nsswitch.conf

...må endres til...

perl -pi -e "s/^passwd:.*/passwd:     files sss/" $drbl_common_root/etc/nsswitch.conf
perl -pi -e "s/^shadow:.*/shadow:     files sss/" $drbl_common_root/etc/nsswitch.conf
perl -pi -e "s/^group:.*/group:     files sss/" $drbl_common_root/etc/nsswitch.conf
perl -pi -e "s/^hosts:.*/hosts:     files sss dns/" $drbl_common_root/etc/nsswitch.conf

Du må også legge dette inn i filen /etc/drbl/conf/client-extra-service

service_extra_added="sssd"

Det er også en "bug" i DRBL som gjør at sssd-tjenesten ikke starter helt slik den skal. Dette ordner du ved å legge til denne linjen i 2516 i filen /usr/sbin/drblpush (etter "chkconfig --add $i).

chroot $drbl_common_root/ /sbin/chkconfig $i on

(PS! Når du først er her - føy til denne.)

CUPS

Legg til denne linjen til slutt i /etc/cups/cupsd.conf på DRBL-tjeneren:

BrowsePoll 192.168.1.30:631

Så må du oppdatere DRBL-klienten:

drblpush -c /etc/drbl/drblpush.conf

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:

mknic-nbi -c no

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.


Andre ting du bør tenke på

Google Chrome

(Dette buggen pleier de å fikse hvis den oppstår, men det er greit å ha løsningen her.)

Google Chrome virker ikke uten at du fikser enda en liten bug. Du må legge til linjen...

/bin/chmod 1777 /dev/shm

...omtrent på linje 3109 i /usr/sbin/drblpush-kommandoen hvor filen rc.local genereres for RH/CentOS (mellom RC_LOCAL-markørene).

Så må du kjøre drblpush-kommandoen på nytt for å oppdatere DRBL-klienten.


Noen maskiner med Intel-skjermkort og bare VGA

Hvis maskinen booter bare med "blå" desktop, kan det hende at maskinen tror du har koblet til en HDMI-skjerm (som du da ikke har). Du løser dette ved å legge inn...

video=LVDS-1:d

...til slutt i append-linjen i /tftpboot/nbi_img/pxelinux.cfg/default på DRBL-tjeneren maskinen booter fra.

Da kobler du ut hele HDMI-kortet når maskinen booter. Løsningen er hentet fra https://www.centos.org/modules/newbb/viewtopic.php?topic_id=34672


Fjerne "annet", samt mulighet for liste av brukere i innloggingsbildet

Innloggingsbildet på CentOS 6 og forøvrig alle Redhat distroene kan være litt plagsomt i forhold til at maskinen husker hvem som har vært innlogget tidligere, og dermed presenterer disse i innloggingsbildet. Eller at du simpelthen må klikke "annet" for å skrive inn brukernavnet ditt. Denne er ment vel, men kan være irriterende i et stort system med gjerne flere hundre brukere. Fjern ovennevnte ved å skrive:

 gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults/ --type bool --set /apps/gdm/simple-greeter/disable_user_list true