V dnešnej dobe sa mnohí stretávajú s úlohami spojenými so znižovaním nákladov, ktoré však často robia bez zmeny pohľadu na spôsob implementácie výpočtovej techniky. Touto zmenou môže byť práve využívanie technológie tenkých klientov a distribúcie operačných systémov. Sám túto technológiu v praxi využívam a tak sa tu chcem jednak podeliť so svojimi skúsenosťami, ale zároveň aj poskytnúť stručnú príručku na zavedenie a používanie tohoto systému.
Linux Terminal Server Project (LTSP), je technológia, ktorá sa snaží riešiť nedostatky súčasného nasadenia informačných technológií, ktorými sú najmä:
Nasledujúci text predpokladá, že čitateľ má základné vedomosti o používaní a správe linuxového servera, pozná použité sieťové technológie a dokáže si nastaviť bootovanie po sieti a podobne.
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
Myšlienka používania terminálových klientov je stará možno ako počítače samé. Mnohí si iste pamätajú sálové počítače s pripojenými terminálmi a ich zeleným písmom na čiernej obrazovke. V dnešnej dobe by určite textový terminál nikomu nepostačoval.
Samotný vývoj projektu LTSP bol odštartovaný v roku 1996 spoločnosťou Binson's Hospital Supplies, ktorá najala firmu Dynamic Results Inc., aby znížila náklady, a to hlavne náklady na získanie hardvéru a softvéru, ďalej náklady na implementáciu, konfiguráciu a údržbu softvéru. Firma Dynamic Results Inc. v rámci tohoto projektu urobila niekoľko výskumov a došla cez jednoduché TCP/IP terminály, MS Windows 95 a ďalšie TCP/IP terminály až k riešeniu, v ktorom dôležitú úlohu hrá práve Linux.
Vďaka existujúcej podpore zavádzania systému po sieti (Netboot a Etherboot, TCP/IP, BOOTP a TFTP) vznikol nový projekt, na ktorom začal pracovať Jim McQuillan. Jeho cieľom sa stalo rýchla kompilácia a distribúcia systému na veľký počet počítačov. Nastavil server, z ktorého sa pomocou protokolov NFS a BOOTP distribuoval základný operačný systém. Po ďalších úpravách sa podarilo distribuovať aj grafické rozhranie X-Window systému. Nakoniec sa po roku 1999 spoločnosť Dynamic Results Inc. rozhodla sprístupniť svoj kód pod licenciou GNU/GPL, čím sa stal prístupný širokým masám vývojárov i používateľov.
V súčasnej dobe je LTSP vo verzii 5 a vďaka podpore firmy Canonical (ktorá stojí za distribúciou Ubuntu) sa tento projekt dostáva do povedomia verejnosti.
Celý princíp činnosti je založený na technológii klient/server. Klientom môže byť špeciálny tenký klient, bežný alebo aj nejaký starý (hardvérovo už nepostačujúci) počítač. Výkon klienta nie je kritický a hardvérové nároky sú minimálne. Nároky na server sú podstatne vyššie a ich konkrétna hodnota priamo závisí od účelu použitia.
Ako som už spomínal vyššie, operačný systém je distribuovaný po sieti, keď si ho klient prostredníctvom PXE zavádzača a protokolu DHCP vyžiada zo servera. PXE zavádzač býva súčasťou dnešných sieťových kariet, v prípade starších strojov (bez podpory PXE) rovnako dobre poslúži alternatíva – program Etherboot zavádzaný napríklad z diskety.
Po získaní operačného systému je tento, relatívne bežným spôsobom, spustený. Počas štartu operačného systému sú natiahnuté potrebné ovládače hardvéru, samozrejme len ak sú súčasťou jadra (či už priamo zakompilované alebo ako moduly). Ako posledná vec štartu systému je spustený správca prihlásenia, ktorým je v prípade LTSP správca LTSP Desktop Manager (LDM).
Správca prihlásenia poskytuje možnosť prihlásenia sa ku grafickému prostrediu (X-Window) servera pomocou zadania používateľského mena a hesla. Z uvedeného vyplýva, že používateľ musí mať na serveri založený účet. Zvyšok už je založený na sieťovej architektúre X-Window, ktorá umožňuje transparentne prenášať po sieti udalosti používateľského vstupu z klienta, spracovať ich na serveri a poslať naspäť klientovi odozvu v podobe obrazu, ktorý je zobrazený na jeho monitore.
Od okamihu prihlásenia sa k serveru sú všetky spúšťané aplikácie fyzicky spúšťané na serveri, čím všetky klienty môžu využívať výpočtový výkon servera (a preto nie je výkon klienta kritický). Táto možnosť napríklad v mojom prípade umožňuje na 32 bitových klientoch využívať všetky výhody 64 bitového softvéru.
Vo verzii 5 používa LTSP niekoľko nových vlastností, ktoré zvyšujú jeho použiteľnosť. Jedná sa najmä o:
Súčasná implementácia LTSP umožňuje po sieti prenášať nielen obraz, ale na klienty je prenášaný i zvuk a napríklad aj pripájanie lokálnych USB kľúčov. Treba si však uvedomiť aj záludnosti vzdialeného behu aplikácií, ktorými sú veci súvisiace s prenosom udalostí o sieti. Preto toto riešenie nie je vhodné tam, kde sa pracuje s veľkým množstvom prenášaných dát, citlivých na latenciu. Takýto prípad je napríklad prenos (zobrazovanie) videa a podobne.
Nasadenie centralizovaného systému so sebou okrem výhod prináša aj isté nevýhody. Medzi najväčšie nevýhody možno zaradiť:
V súčasnosti poskytujú možnosť inštalácie LTSP viaceré distribúcie Linuxu. Medzi najznámejšie z nich iste patria:
Kto sa neuspokojí s riešením poskytovaným v distribúcii alebo jeho distribúcia LTSP neposkytuje, môže si toto prostredia vybudovať stiahnutím potrebného softvéru z domovskej stránky projektu.
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
Pred začiatkom implementácie je dôležitý výber hardvéru, pretože hardvér je základ všetkého. V prostredí LTSP možno túto úlohu rozdeliť na niekoľko časti, ktoré spolu viac alebo menej súvisia.
Ako klient vám v prostredí poslúži akýkoľvek počítač, ktorý spĺňa vlastne len jednu podmienku, a to mať sieťovú kartu. Avšak je dobré zvážiť aj iné aspekty práce, ktorá môže mať vlastné požiadavky na hardvér:
Ak chcete využiť výhody riešenie LTSP ohľadom zníženia elektrickej spotreby a hlučnosti, neuvažujte o použití výbehových strojov. Ak sa však vyberiete cestou nového hardvéru, stratíte zase výhodu lacného hardvéru. Takže konečné rozhodnutie je na Vás.
Naše riešenie používa ako klienta stroj RB-851 MINI, ktorý má rozmery 170x124x85 mm a je napájaný externým adaptérom 5 V/4.5 A. Hardvérové vybavenie tohoto stroja je:
Pre plnú funkčnosť som musel aktualizovať BIOS.
Keď som písal pri klientovi, že je treba brať do úvahy účel použitia, pri serveri to platí dvojnásobne. Napriek tomu tu uvediem niektoré základné údaje, aby bolo od čoho začať. V tomto prípade sú kritické veci podobné ako pri klientovi:
Nami používaný server má konfiguráciu:
Posledným bodom je samotná sieťová infraštruktúra. Ak máte viac ako 20 terminálov, pre pripojenie LTSP servera určite použite GigaBit Ethernet pripojený ku gigabitovému portu prepínača. Hoci bežné využitie siete osciluje v rozhraní 0.5 – 2 Mb/s, môže klient v špičke zabrať aj viac (70 Mb/s), hlavne pri spracovaní multimediálneho obsahu. Zahltenie siete čo i jediným klientom spôsobí spomalenie práce všetkých a to môže byť nepríjemné, pretože sa citeľne predĺžia odozvy na používateľský vstup (až na niekoľko sekúnd).
Určite použite kvalitný prepínač (switch). V žiadnom prípade sa nespoliehajte na rozbočovač (HUB)! V neposlednom rade pripomeniem, že rovnako ako ostatné prvky, sú dôležité aj kvalitné sieťové zásuvky a prepojovacie vedenia siete, pretože všetko funguje cez sieť. Ak táto nepracuje na požadovanej úrovni, nebudú kvalitne pracovať ani klienty.
Pri výbere hardvéru pre klienta i server nezabudnite preveriť ich podporu v Linuxe, inak sa môžete dostať do zbytočných problémov.
Pred samotným výberom distribúcie som vzal do úvahy niekoľko faktorov:
Vlastne už prvý aspekt predurčil vlastne len dve distribúcie, a to Debian alebo Ubuntu, takže ako zástanca Debianu a odporca Ubuntu som mal ťažkú dilemu, z ktorej nakoniec predsa len vyšlo víťazne Ubuntu, pretože:
Ako sami vidíte, rozdiel je minimálny, ale neľutujem.
Celý popis je o verzii Ubuntu 9.04 a ako používateľ Debianu upozorňujem, že v popise nepoužívam ubunťácky tanec so sudo (ak neviete čo je to sudo, tak sa tým netrápte) a predpokladám, že čitateľ dokáže správne rozhodnúť, na ktoré úkony potrebuje práva superpoužívateľa root.
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
Inštalácia LTSP servera je triviálna. Líši sa podľa toho, či chcete vybudovať LTSP server na už existujúcom serveri alebo inštalovať server celkom nový.
Pre inštaláciu nového servera je potrebné inštalačné CD označené ako alternate CD. Jediná vec, ktorou sa inštalácia LTSP servera od bežného servera (alebo i desktopu) líši, je explicitný výber voľby "Inštalácia LTSP servera", ktorá sa skrýva na prvej inštalačnej obrazovke CD pod skratkou F4, ako nakoniec vidno na obrázku.
Po tomto výbere už inštalácia prebieha klasickým spôsobom a nebudem ju tu popisovať, pretože sa o to postarala Ubuntu komunita na mnohých iných miestach. K štandardnej inštalácii pribudol len čas potrebný na vybudovanie prostredia tenkého klienta, ktorého vybudovanie vyžaduje prístup na internet, takže nezabudnite pri inštalácii venovať náležitú pozornosť nastaveniu siete.
Pokiaľ inštaluje na existujúci server, stačí nainštalovať dva balíky (o ich závislosti sa postará aptitude):
aptitude install ltsp-server-standalone openssh-server
Po nainštalovaní servera je treba vykonať niekoľko úprav.
Rozhranie eth0 sa nastavuje pri inštalácii a malo by bez problémov fungovať. Jediný problém, na ktorý som pri tomto kroku narazil, bol konflikt IP adries vnútornej (terminálovej) siete, pretože predvolené nastavená IP adresa kolidovala s nastaveniami moje vonkajšej siete. Toto vnútorné rozhranie predvolene používa IP adresu 192.168.0.254/24 a zmenu som urobil v dvoch súboroch, pričom som použil adresu 192.168.10.254/24, čím mi vlastne stačilo popridávať na príslušné miesta len jednu jednotku:
auto eth1 iface eth1 inet static address 192.168.10.254 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255
subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.20 192.168.10.250; option domain-name "example.com"; option domain-name-servers 192.168.10.254; option broadcast-address 192.168.10.255; option routers 192.168.10.254; # next-server 192.168.10.254; # get-lease-hostnames true; option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/i386"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } }
Osvedčilo sa mi aj odinštalovanie NetworkManager-a, pretože mi akosi nefungoval a zasahoval do nastavenia siete:
aptitude purge network-manager network-manager-gnome
Po týchto úpravách už len reštart siete a DHCP servera:
invoke-rc.d networking restart invoke-rc.d dhcp3-server restart
Asi sa nebudete so mnou veľmi hádať, keď prehlásim, že stav slovenskej lokalizácie, minimálne v Gnome, zaostáva. Aj preto používam kombinovanú lokalizáciu, v ktorej je ako prvotný jazyk nastavená slovenčina, ale ak nenájde príslušný slovenský preklad, použije pred anglickým ešte lokalizáciu českú.
Toto nastavenie možno jednoducho dosiahnuť pridaním nasledujúceho riadku do súboru /etc/default/locale:
LANGUAGE="sk:sk_SK:cs:cs_CZ"
Toto nastavenie však nie je použité v Gnome a ani v KDE. KDE má na nastavenie dvojjazyčnosti svoj vlastný dialóg, v Gnome som trochu maturoval a nakoniec som použil riešenie, v ktorom vytváram jeden súbor, spúšťaný vždy pri vytváraní relácie X Window. Takže som vytvoril súbor /etc/X11/Xsession.d/56language-session_gnome s obsahom:
# If we are running the GNOME session, source the /etc/default/locale file # and then export LANGUAGE variable, if it was set BASESTARTUP=`basename "$STARTUP" | cut -d\ -f1` if [ "$BASESTARTUP" = gnome-session -o \ \( "$BASESTARTUP" = x-session-manager -a \ "`readlink /etc/alternatives/x-session-manager`" = \ /usr/bin/gnome-session \) ]; then . /etc/default/locale if [ "$LANGUAGE" ]; then export LANGUAGE fi fi
Skriptík prosto overí, či spúšťaná relácia je Gnome, a ak áno, tak spracuje vyššie spomínaný súbor a vyexportuje premennú LANGUAGE, ktorej hodnotu získa zo súboru /etc/default/locale. Takto ostáva nastavenie premennej LANGUAGE na jednom mieste, ale je aplikované aj v Gnome.
Na server som nainštaloval 64 bitovú verziu (amd64) Ubuntu a inštalátor predvolene vytvoril aj 64 bitovú verziu systému pre klientov (ak teda máte 64 bitových klientov, môžete celý tento krok preskočiť). To mi však neladilo s mojimi 32 bitovými klientami. Ak teda máte podobné riešenie, je treba odstrániť všetko ohľadom amd64 verzie klienta. Teda, aby som bol celkom presný, nie je to potrebné, len dobré. Architektúra klienta sa vyskytuje na viacerých miestach, takže postupne:
rm -rf /opt/ltsp/*
rm -rf /var/lib/tftpboot/ltsp/*
2000 stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/nbdrootd /opt/ltsp/images/amd64.img
Tento posledný krok nie je nutný. Avšak, ak ho ponecháte, skript na vytváranie klientského prostredia pridá nový riadok (a teda nový port) a číslo tohoto nového portu potom pridá aj do konfigurácie PXE v /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default a to môže najmä začiatočníkov mýliť.
Po týchto prípravných operáciách možno spustiť znovavybudovanie prostredia klienta pomocou skriptu:
ltsp-build-client --arch i386
V tomto príkaze je dôležitý parameter s architektúrou, pretože ak ho vynecháme, skript predvolene použije architektúru servera, a tak by sme mali znova prostredie klienta pre amd64.
Po dokončení tejto operácie (zaberie to nejaký čas) už možno spustiť klientov a ich systém naštartuje, čiže LTSP trieda je pripravená na prácu. Jediný problém, ktorý si viem predstaviť pri prvom štarte, je nepodporovaný hardvér, ale myslím, že ak nemáte niečo veľmi exotické, bude to fungovať.
Predvolene je v Ubuntu nainštalovaný klient pre nastavenie času cez sieť, ak ho nemáte, stačí ho doinštalovať:
aptitude install ntpdate
Jeho konfiguráciu možno vyladiť v súbore /etc/default/ntpdate, kde treba urobiť niekoľko prispôsobení. Ak nemáte na tomto stroji nainštalovaný NTP server, čo ja nemám, tak treba zakomentovať (pridať na začiatok mriežku) riadok:
#NTPDATE_USE_NTP_CONF=yes
Potom ešte možno bude potrebné nastaviť meno/adresu časového servera. Z našej školy sa mi nedá komunikovať protokolom NTP a "odborníci" z T-Comu mi povedali, že sa to nedá (?), tak som nakoniec pomocou jednej barličky rozchodil vlastný časový server, ktorého adresu zadávam do konfiguračného súboru:
NTPSERVERS="10.1.92.2"
Ak teraz netrpezlivo spustíte ntpdate, musím Vás sklamať. Tento príkaz nečíta upravovaný konfiguračný súbor a stále čaká adresu časového servera ako svoj parameter. Konfiguračný súbor však číta príkaz ntpdate-debian, ktorý nám už čas nastaví:
ntpdate-debian 6 Dec 18:43:08 ntpdate[11319]: adjust time server 10.1.92.2 offset 0.006204 sec
Aby sa táto úloha vykonávala pravidelne, je treba ju pridať do cronu, napríklad do súboru /etc/cron.d/ntpdate:
# /etc/cron.d/ntpdate: crontab položka pre automatickú úpravu času SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 0 0 * * * root ntpdate-debian > /dev/null
Týmto nastavením sa spustí synchronizácia času každý deň o polnoci a automaticky nastaví nový čas.
V prostredí LTSP existuje niekoľko zaujímavých adresárov, ktoré uchovávajú prostredie klienta a tiež adresáre, kde sú uložené súbory potrebné pre jeho štart. Vo východzom nastavení sa jedná o:
/opt/ltsp/$ARCH
/var/lib/tftpboot/ltsp/$ARCH
V oboch prípadoch treba $ARCH nahradiť architektúrou klienta, v mojom prípade je to i386.
/etc/ltsp
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
Po predchádzajúcich nastaveniach servera by sa mali vzdialené klienty naštartovať po sieti. Proces sťahovania operačného systému nie je grafický a možno ho sledovať na obrazovke klienta. Po rozbalení jadra systému sa spustí grafická bootovacia obrazovka a už sme dosledovali, jediné čo vidíme je postupujúci ukazovateľ postupu. Ak teda nabehlo všetko ako má, možno pristúpiť k niektorým vylepšeniam.
Základné nastavenie správania sa klienta je v prostredí LTSP v súbore /var/lib/tftpboot/ltsp/i386/lts.conf. Klient si vždy pri štarte tento súbor (teda nastavenia v ňom) načíta a použije. Na začiatku tento súbor neexistuje, takže ho treba vytvoriť. Všetky zmeny, ktoré v tomto súbore urobíte sa prejavia až po reštarte, samozrejme klienta, nie servera.
Súbor je rozdelený na sekcie a každá sekcia môže mať niekoľko parametrov v štandardnom tvare – názov=hodnota. Názvy sekcií sú zatvorené v lomených zátvorkách. Pričom povinná je len jedna sekcia – [default]. Parametre v tejto povinnej sekcii sú použité na všetkých klientov, ale môžu byť prepísané v ďalších sekciách. Ďalšie sekcie môžu byť sekcie klientov, kde názov sekcie tvorí MAC adresa (samozrejme v lomených zátvorkách). Nastavenia v sekcii klienta sa použijú len pre klienta s príslušnou MAC adresou.
Je možné vytvárať aj virtuálne sekcie. Ich pomenovanie v zátvorkách môže byť prakticky ľubovoľné. Tieto slúžia ako akési makrá, do ktorých si môžem pripraviť konfiguráciu, ktorú potom aplikujem na príslušných klientov. Príklad Vám ukážem v nastavení displeja. Zoznam a popis skoro všetkých možných parametrov nájdete v súbore /usr/share/doc/ltsp-server/lts-parameters.txt.gz.
V tomto konfiguračnom súbore sú viac-menej parametre dvoch typov. prvý je logický, ktorý môže nadobúdať hodnoty - teda niektorú z hodnôt Y, y, True, true alebo N, n, false, false.
Ja mám všetky monitory v LTSP sieti rovnaké, preto si vystačím s jediným parametrom v sekcii [default]:
[default] X_COLOR_DEPTH = 16
Týmto nastavením som nastavil všetkým klientom farebnú hĺbku 16 bitov. Ako som spomínal vyššie, toto nastavenie bude použité na všetkých klientov. Jeho predvolená hodnota v Ubuntu je 24. Čo však ak niektorý klient potrebuje inú hodnotu? Žiadny problém, prosto pridám klientskú sekciu:
[default] X_COLOR_DEPTH = 16 [00:0f:26:fb:0c:a1] X_COLOR_DEPTH = 8 [00:0f:26:fb:0c:94] X_COLOR_DEPTH = 24
Týmto nastavením zaistím, že jeden klient (s MAC 00:0f:26:fb:0c:a1) použije farebnú hĺbku len 8 bitov, druhý klient (s MAC 00:0f:26:fb:0c:94) zase 24 bitov a všetci ostatní použijú spoločne nastavenú hodnotu 16 bitov. Takto ručne nastavovať hodnoty pre jednotlivých klientov je dobré len do okamihu keď toto nastavenie treba zmeniť. Aby hodnoty nebolo treba meniť v každom klientovi, je možné použiť spomínané virtuálne sekcie, ktoré potom jednoducho aplikujeme do klientskej sekcie
[default] X_COLOR_DEPTH=16 [slabymonitor] X_COLOR_DEPTH=8 X_MODE_0=800x600 [00:0f:26:fb:0c:a1] LIKE=slabymonitor [00:0f:26:fb:0c:94] LIKE=slabymonitor
Zmena nastavenia pre oboch klientov na jednom mieste je iste zrejmá. Myslím, že význam parametra X_MODE_0 je samovysvetľujúci, len tá nula na konci udáva číslo režimu.
Ešte jedna poznámka ohľadom veľkosti RAM grafickej karty. Ak používate klienta, ktorý používa pre grafickú kartu zdieľanú pamäť a tejto pamäte nemáte na rozdávanie, tak si prosto vypočítajte jej potrebnú veľkosť pomocou vzorca:
vert-rozlíšenie * horiz-rozlíšenie * far_hĺbka / 8
výsledok je v bajtoch, takže ak chcete dostať hodnotu v MB je potrebné výsledok podeliť 2 * 1024. Napríklad:
1280 * 1024 * 16 / 8 / 1024 / 1024 = cca 2.5 MB
S touto hodnotou som sa ešte nestretol, ale bežne dostupná býva voľba 4 či 8 MB, takže použijem túto (predvolene bolo 16 MB).
Ďalším zaujímavým parametrom je možnosť vypnutia šifrovania pomocou parametra LDM_DIRECTX:
LDM_DIRECTX=true
vypnutím šifrovania síce strácam istú úroveň bezpečnosti, ale zároveň znížim nároky na procesor, a to ako na strane servera, tak (a hlavne) i na strane klienta. Pozor však, strácam aj o možnosť kompresie sieťovej prevádzky, ktorú poskytuje SSH.
Študenti sú automatickým zapínaním NumLock nielen rozmaznaní, čo je horšie, počas niekoľkých týždňov sa nenaučili ho zapínať. A keďže ma pípanie klienta, ktorý na to pri použití numerickej klávesnice upozorňoval, otravovalo, rozhodol som sa im ho zapnúť.
X_NUMLOCK=true
Pozor však, je potrebné do prostredia klienta doinštalovať balík numlockx, ale o tom neskôr.
Prihlasovanie v LTSP nepoužíva GDM (Gnome Display Manager), ale namiesto neho je použitý LDM (LTSP Display Manager). Jazyk LDM má vplyv na jazyk relácie X (Gnome) prihláseného používateľa. Je možné definovať nastavenie jazyka ako predvolené pre všetky klienty alebo samostatne pre každého klienta:
LDM_LANGUAGE="sk_SK.UTF-8"
Aj v tomto prípade je treba doinštalovať dodatočné balíky do prostredia chroot (a preložiť si LDM).
V LDM je možné nastaviť predvolené prihlasovacie meno a heslo, ktoré bude použité pri akomsi anonymnom prihlásení (na prihlasovacej obrazovke pribudne tlačidlo "Prihlásiť ako hosť"), takže sa možno prihlásiť k serveru bez explicitného zadávania prihlasovacích údajov. Toto nastavenie je možné urobiť v spoločnej sekcii (pre všetkých klientov rovnaké) alebo urobiť pre každého klienta zvlášť v jeho klientskej sekcii. Spoločné prihlasovacie údaje sa mi neosvedčili, pretože niektoré aplikácie (OpenOffice.org, Firefox, ...) sa potom spúšťali na monitore prvého prihláseného, prípadne sa spustili len raz a potom už len otvárali chybový dialóg. Ale prihlásenie hosťa mám povolené centrálne:
[default] LDM_GUESTLOGIN = True [00:0f:26:fb:0c:a1] LDM_USERNAME = meno LDM_PASSWORD = heslo
Okrem prihlásenia hosťa je možné povoliť aj automatické prihlásenie, pomocou voľby:
[default] LDM_AUTOLOGIN=true [00:0f:26:fb:0c:a1] LDM_USERNAME = meno LDM_PASSWORD = heslo
Pozor však, s takýmto nastavením sa ani neodhlásite, pretože okamžite po odhlásení bude zase automaticky prihlásený účet, zadaný pomocou rovnakých parametrov (LDM_USERNAME a LDM_PASSWORD).
Ak nie je pre tenkého klienta definované meno a heslo (LDM_USERNAME / LDM_PASSWORD), je predvolene použité hostname tenkého klienta.
Ak poslednú voľbu v tejto časti spomeniem voľbu pre výber relácie:
LDM_SESSION=fvwm-crystal
Ak sa Vám zdá toto nastavenie zbytočné, ja som ho ocenil v okamžiku, keď som začal hľadať inú alternatívu ako je Gnome a nechcelo sa mi presviedčať všetkých používateľov aby si zmenili reláciu. Nastavenie tohoto parametra udáva predvolenú reláciu, a tak stále dovoľuje zmeniť reláciu v prihlasovacej obrazovke LDM.
[Default] # Vypnúť šifrovanie LDM_DIRECTX=True # Nastaviť farebnú hĺbku X_COLOR_DEPTH = 16 # Zapnúť NumLock (vyžaduje balík numlockx v klientovi) X_NUMLOCK=true #Povoliť prihlásenie hosťa LDM_GUESTLOGIN = True ########################################### [44:4d:50:e2:52:55] # prac21-01 LDM_USERNAME = meno01 LDM_PASSWORD = heslo01 [44:4d:50:e2:50:ec] # prac21-02 LDM_USERNAME = meno02 LDM_PASSWORD = heslo02 [44:4d:50:e2:51:f9] # prac21-03 LDM_USERNAME = meno03 LDM_PASSWORD = heslo03 ...
Skript ltsp-build-client, ktorý vytvára prostredie klienta (vlastne úplne samostatný systém), predvolene nastavuje dve úložiská pre chroot prostredie:
deb http://archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse deb http://security.ubuntu.com//ubuntu jaunty main restricted universe multiverse
Z času na čas sú balíky, ktorá tvoria LTSP chroot, aktualizované, či opravené. Dôležitá vec je uvedomiť si, že chroot prostredie je samostatné a jeho nastavenie úložísk nie je ovplyvnené zmenami nastavenia úložísk servera.
Pri aktualizácii LTSP servera na novú verziu (napr Jaunty -> Karmic), je lepšie vybudovať úplne nové prostredie chroot klienta.
Pred akoukoľvek úpravou prostredia chroot je dobré si urobiť jeho zálohu, napríklad kvôli vykonaným úpravám, ktoré nechcete stratiť. Rovnako to oceníte, ak bude z akýchkoľvek dôvodov potrebné vrátiť prostredie chroot do pôvodnéh stavu. Najjednoduchšia záloha je pomocou rekurzívneho kopírovania:
sudo cp -a /opt/ltsp /opt/ltsp-orig
Aktualizáciu svojho prostredia chroot začneme úpravou existujúceho súboru /opt/ltsp/arch/etc/apt/sources.list tak, aby zahŕňal aj úložisko s aktualizáciami no a potom už stačí vykonať aktualizáciu vo vnútri chroot. Najprv, teda pridávam do súboru /opt/ltsp/i386/etc/apt/sources.list v LTSP chroot riadok:
deb http://sk.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted
Pred vstúpením do prostredia chroot je dobré nastaviť premennú LTSP_HANDLE_DAEMONS=false, čím zabraňujem serveru aby reštartoval svoje vlastné démony pri aktualizácii prostredia chroot:
export LTSP_HANDLE_DAEMONS=false
Vstúpim do prostredia chroot v adresári klienta LTSP:
sudo chroot /opt/ltsp/i386
V prostredí chroot pripojím /proc, spustím aktualizáciu všetkých aktualizovaných balíčkov a nakoniec vymažem vyrovnávaciu pamäť balíčkov:
mount -t proc proc /proc aptitude update && aptitude safe-upgrade aptitude clean
Chcem Vás tu upozorniť na predvolenú konfiguračnú voľbu aptitude, ktorá automaticky inštaluje aj odporúčané balíky. Ak teda nemáte skúsenosti, použite radšej nástroj apt-get.
Pozorne dodržujte všetky pokyny aktualizácie (ak nejaké sú). Dôsledne sa uistite, že pri aktualizácii nenastali žiadne chyby, pretože ak inštalácia niekorého balíka zlyhá, môže to spôsobiť, že klient nenaštartuje.
Pri aktualizácii sa objavuje chybové hlásenie: "Nedá sa zapísať záznam, volanie openpty() zlyhalo (/dev/pts nie je pripojený?)" (v originále "Can not write log, openpty() failed (/dev/pts not mounted?)"), túto si ale všímať netreba, pretože je čisto kozmetická.
Po úspešnej aktualizácii možno opustiť chroot, odpojiť /proc, spustiť ltsp-update-kernels (ak bolo v chroot aktualizované aj jadro) a nakoniec znova vybudovať NBD obraz tenkého klienta:
sudo umount /proc exit unset LTSP_HANDLE_DAEMONS sudo ltsp-update-kernels sudo ltsp-update-image --arch i386
Aby sa aplikovali zmeny (z nového obrazu), je vždy treba tenké klienty reštartovať.
Doplnenie prostredia chroot o ďalšie programy používa vlastne rovnaký postup ako pri jeho aktualizácii, ale pre istotu tu zopakujem aj základné kroky, ktoré je dobré urobiť pred samotným vstúpením do chroot prostredia, tentokrát už bez vysvetľovaní.
Nastavím premennú LTSP_HANDLE_DAEMONS=false:
export LTSP_HANDLE_DAEMONS=false
Vstúpim do prostredia chroot v adresári klienta LTSP:
sudo chroot /opt/ltsp/i386
Pripojím /proc:
mount -t proc proc /proc
V prostredí chroot nie sú predvolene nainštalované balíky, ktoré sa postarajú o lokalizáciu prostredia (najmä LDM), preto je dobré doinštalovať:
aptitude install gettext language-pack-gnome-sk
Po nainštalovaní je dobré aktualizovať generovanie lokáliek:
locale-gen
Nepočítajte s tým, že bude prihlasovacia obrazovka po slovensky, pretože LDM v Ubuntu 9.04 nie je lokalizovaný do slovenčiny. Ak máte záujme, môžete si poslovenčený balík stiahnuť a nainštalovať z mojej stránky.
aptitude install numlockx
Po doinštalovaní tohoto balíka už bude funkčná aj voľba X_NUMLOCK v nastavení LDM (lts.conf).
PC speakery dokážu byť veľmi otravné, najmä keď sa používatelia pred prihlásením pokúšajú použiť numerickú klávesnicu bez zapnutia NumLock, čo spôsobuje systémové pípnutie. Ak si to vynásobíte počtom klientov v triede, dostanete jednoznačný dôvod na vypnutie.
Ovládač speakera je kompilovaný ako modul, preto ho možno vypnúť prostým zakázaním jeho načítania (blacklist) pri štarte. Najprv treba vytvoriť súbor /etc/modprobe.d/blacklist-pcspkr.conf (pozor, v chroot prostredí klienta) a do neho vpísať:
# Zakázanie načítania modulu PC Speaker (pcspkr) blacklist pcspkr
Po úspešnej inštalácii a úpravách netreba zabudnúť na správne ukončenie a vygenerovanie nového NBD obrazu:
exit sudo umount /opt/ltsp/i386/proc unset LTSP_HANDLE_DAEMONS sudo ltsp-update-image --arch i386
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
Považujem za dobré aby známi klienti v sieti používali vždy rovnaké IP adresy a toto nastavenie sa mi osvedčilo aj pre LTSP terminály, pretože je možné relatívne jednoducho identifikovať príslušného klienta.
Pre použitie pevných IP adries je treba vybrať rozsah IP adries, ktoré nepatria do rozsahu, z ktorého ich poskytuje DHCP server. Predvolene DHCP server poskytuje IP adresy v rozsahu 20 - 250 a toto nastavenie nádjete v súbore /etc/ltsp/dhcpd.conf v riadku:
range 192.168.10.20 192.168.10.250;
Ak je potrebný väčší rozsah adries ako 2 - 19, prosto upravte rozsah podľa potreby.
Pre vytvorenie statických položiek stačí pridať za riadok s voľbou "option root-path" pre každého klienta tieto riadky:
host hostname { hardware ethernet MA:CA:DD:RE:SS:00; fixed-address 192.168.10.2; }
Samozrejme MAC adresu nahraďte hodnotami podľa hodnôt klienta, ktorý má dostávať pevnú IP adresu. Položka fixed-address je hodnota IP adresy, ktorú má klient dostať a položka hostname je meno, ktoré klient dostane. Pre plné pochopenie tohoto nastavenia je dobré mať isté vedomosti o DHCP, ktoré tu však popisovať nebudem.
Technika swap je spôsob o virtuálne rozšírenie fyzickej veľkosti pamäte RAM o miesto na pevnom disku. keďže však tenké klienty často pevné disky nemajú, je treba v prostredí LTSP použiť iné riešenie. LTSP podporuje swapovanie po sieti pomocou NBD (Network Block Device) pomocou malého skriptu nbdswapd, ktorý je spúšťaný prostredníctvom inetd a stará sa o vytváranie swapovacieho súboru, nastavenie swapovania a odstránenie tohoto súboru, keď už nie je potrebný (po odhlásení terminálu).
Príslušný riadok v /etc/inetd.conf vyzerá takto:
9572 stream tcp nowait nobody /usr/sbin/tcpd /usr/sbin/nbdswapd
Predvolene majú súbory swap veľkosť 32 MB, čím je klientom pridané trochu RAM, ale nezaberá to veľa miesta na disku. Ak sa stretnete s podozrivým správaním, ako náhodné padanie Firefoxu pri prezeraní stránok s veľkým množstvom veľkých obrázkov, možno bude treba túto hodnotu zvýšiť. Nastavenie veľkosti súboru swap dosiahnete v súbore /etc/ltsp/nbdswapd.conf. Stačí do tohoto súboru vložiť riadok pre nastavenie premennej SIZE v MB, napr. pre 128 MB:
SIZE=128
Pri nastavovaní veľkosti sieťového swap dajte pozor na zabrané diskové miesto. Ak server obsluhuje 15 klientov a každý používa 128 MB swapu, zaberie to spolu 15 * 128 = 1920 MB, čiže skoro 2 GB miesta v adresári /tmp (kde sú tieto súbory ukladané).
Po nastavení veľkosti súboru NBD swap treba jeho používanie povoliť v konfigurácii lts.conf:
NBD_SWAP=true
Podľa východzieho nastavenia je povolenie NBD swapu cez inetd povolené v súbore /etc/hosts.allow:
nbdswapd: ALL: keepalive
Ak je z nejakého dôvodu (napríklad lokálne aplikácie, synchronizácia času, ...) potrebný priamy prístup klientov k internetu, je treba na serveri povoliť smerovanie paketov a preklad sieťových adries (NAT). Smerovanie paketov sa postará o prechod paketov z jedného rozhrania servera na druhé. NAT sa postará o správnu manipuláciu odchádzajúcich (a potom i prichádzajúcich) paketov tak, aby okolitá sieť dokázala sieťovú komunikáciu poslať na správne miesto.
V Linuxe je možné nastavenie NAT v iptables dvoma spôsobmi, prvý sa volá MASQUERADING, ktorý sa hodí pre dynamicky nastavované vonkajšie rozhranie a SNAT, ktorý je zase vhodný v prípade statického nastavenia IP adresy.
Postup je jednoduchý:
net.ipv4.ip_forward=1 ... net.ipv6.conf.default.forwarding=1
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.10.0/16 -o eth0 -j SNAT --to-source 192.168.0.112
Po zadaní jedného z predchádzajúcich príkazov začne smerovanie paketov fungovať, ale len do nasledujúceho reštartu. Pre plnú funkčnosť je treba zaistiť, aby sa toto nastavenie načítalo pri štarte systému, čo možno dosiahnuť viacerými spôsobmi, ja som použil spôsob popísaný v dokumentácii Ubuntu.
Najprv som si uložil aktuálny stav nastavenia iptables pomocou:
iptables-save > /etc/ltsp/nat
Vygenerované nastvenie je zbytočne podrobné, keďže potrebujem len pravidlo pre SNAT, ponechám len tieto riadky:
# Generated by iptables-save v1.4.1.1 on Wed Dec 16 19:08:11 2009 *nat :OUTPUT ACCEPT [0:0] -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to-source 192.168.0.112 COMMIT # Completed on Wed Dec 16 19:08:11 2009
Nakoniec pridám riadok do nastavenia rozhrania terminálovej siete, v mojom prípade eth1, v súbore /etc/network/interfaces:
auto eth1 iface eth1 inet static address 192.168.10.254 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 up iptables-restore < /etc/ltsp/nat
V Ubuntu predvolene účet root nie je povolený, a tak i keď si povolíte konzolu, neprihlásite sa, pretože v chroot žiadny iný použiteľný účet nie je. Takže si buď vytvorte administračný účet, alebo povoľte root. Začnem povolením root, ale oba kroky majú spoločný začiatok a koniec, teda vstúpenie a vystúpenie z chroot a nakoniec generovanie nového obrazu klienta.
Vstúpenie do chroot:
chroot /opt/ltsp/i386
Odomknem účet root v chroot:
passwd --unlock root
Nastavím mu heslo:
passwd root
Možno lepšie riešenie ako povolenie účtu root je vytvorenie administračného účtu (povedzme s menom admin), ktorý bude používaný na prihlásenie k systému klienta. Takýto účet neexistuje, preto ho treba najprv pridať. Pri pridávaní mu zároveň nastavím členstvo v skupine sudo. nezabudnem ani na nastavenie hesla.
useradd -m admin -G sudo passwd admin
Posledný krok, v oboch prípadoch, je opustenie chroot a aktualizácia obrazu klienta:
exit sudo ltsp-update-image --arch i386
Často je dobré mať na počítači presný čas, najmä ak používa časovo ovládané spúšťanie úloh (cron). Pre tento účel je potrebný časový server (pomocou NTP) a nástroj, ktorý dokáže z tohoto servera čas získať. Inštaláciou časového servera sa zaoberať nebudem a popíšem implementáciu na strane klienta, ktorý bude na synchronizáciu využívať časový server mimo LTSP siete.
Najprv je treba vstúpiť do chroot klienta:
chroot /opt/ltsp/i386
a tam nainštalovať klienta synchronizácie času:
aptitude install ntpdate
Pre jednoduché nastavenie spúšťania pri štarte možno vytvoriť priamo štartovací skript v príslušnom adresári /etc/rc?.d. Ukážem však postup ako využiť možnosť konfigurácie synchronizácie času bez potreby úpravy obrazu klienta zo súboru lts.conf.
Pre toto potrebujem vytvoriť spúšťací skript v adresári /usr/local/sbin, nazvaný ltsp_ntpdate s obsahom:
#!/bin/bash # načítaj adresu NTP servera LTSP_TIMESERVER=$(getltscfg TIMESERVER)
if [ -z "$LTSP_TIMESERVER" ]; then # ak nebola zadaná, použi ntp.org
LTSP_TIMESERVER=sk.pool.ntp.org
fi
# ak je dosiahnuteľný, tak synchronizuj čas
[ "$(ping $LTSP_TIMESERVER -qc1 -w1 > /dev/null && echo OK)" = "OK" ] && ntpdate $LTSP_TIMESERVER &
Tento skript je inšpirovaný skriptom Pierre Barcoa. Ak je v konfiguračnom súbore lts.conf nastavená premenná TIMESERVER, skript ju použije a bude s týmto serverom aktualizovať čas tenkého klienta. Ak lts.conf premennú neobsahuje neobsahuje, bude tenký klient synchronizovať svoj čas so skupinou serverov sk.pool.ntp.org.
Po vytvorení skriptu mu je treba nastaviť práva na spustenie:
chmod +x /usr/local/sbin/ltsp_ntpdate
Treba upraviť aj konfiguračný súbor ltsp.conf a do sekcie [default] pridať:
[default] TIMESERVER=192.168.0.1 RCFILE_01=/usr/local/sbin/ltsp_ntpdate
Premenná TIMESERVER definuje IP adresu použitého časového servera. Premenná RCFILE_01 obsahuje cestu k skriptu ltsp_ntpdate a udáva, že tento skript bude spustený pri štarte klienta.
Nakoniec treba aktualizovať obraz klienta:
ltps-update-image --arch i386
To čo mi chýbalo od začiatku, je možnosť zapínania a vypínania po sieti (riešil som to pomocou ističov). Zapínanie je relatívne jasné, teda sieťová karta musí podporovať Wake On Lan a musí mať túto možnosť zapnutú. Ohľadom vypínania sú možné dva postupy. Prvým je automatické vypínanie v určitom čase pomocou CRON alebo vzdialené vypínanie po sieti, ja popíšem to druhé.
Aby bolo možné klienty vzdialene po sieti zapínať, musia túto možnosť jednak podporovať a jednak ju musia mať zapnutú v BIOSe. Po tomto povolení je potrebné na server (alebo iný vhodný počítač) nainštalovať balík wakeonlan.
aptitude install wakeonlan
Po nainštalovaní už môžem vyskúšať funkčnosť zadaním MAC adresy klienta, ktorého chcem zapnúť:
wakeonlan 44:4d:50:e2:51:f9
Ak sa nič nestalo (a mne sa nestalo), treba vyskúšať zadať rozhranie, cez ktoré sa má magický paket poslať. Rozhranie sa zadáva v podobe broadcastovej adresy príslušnej siete, v mojom prípade:
wakeonlan -i 192.168.10.255 44:4d:50:e2:51:f9
Ak to stále nefunguje, je možné, že operačný systém prepisuje nastavenie WoL sieťovej karty a treba mu ho implicitne zadať, ale to popíšem neskôr.
Ak to funguje, nastal čas na trochu spohodlnenie nastavenia. Aby som mohol klientov zobúdzať pomocou ich mena (pretože MAC sa dosť zle pamätá), je treba upraviť dva súbory, a to /etc/hosts a /etc/ethers. Začnime tým druhým (ktorý ešte nemusí existovať). Je to súbor, ktorý obsahuje medzerami oddelené dvojice MAC adresa a hostname, napríklad:
cat /etc/ethers 44:4d:50:e2:52:55 ltsp101 44:4d:50:e2:50:ec ltsp102 44:4d:50:e2:51:f9 ltsp103 ...
Ale tento zoznam nebude fungovať bez funkčného prekladu hostname na IP adresu, preto najjednoduchšie je ich pridanie do súboru /etc/hosts, ktorý zase obsahuje medzerami oddelené dvojice IP adresa a hostname. V systéme už iste existuje a má aj nejaký obsah, preto na jeho koniec stačí pridať, napríklad:
... 192.168.0.101 ltsp101 192.168.0.102 ltsp102 192.168.0.103 ltsp103 ...
Pre istotu pripomeniem, že aby to správne (a hlavne trvalo) fungovalo, je treba nastaviť DHCP server pre prideľovanie stále rovnakých IP adries, ako som písal už skôr. Po tejto úprave už možno klienta zobúdzať napríklad pomocou:
wakeonlan -i 192.168.10.255 ltsp101
Ako som spomínal vyššie, klientovi nemusí vždy stačiť nastavenie v BIOSe a treba ho trochu vylepšiť. Aby mi to teda fungovalo, musel som do chroot prostredia klienta nainštalovať balík ethertool:
chroot /opt/ltsp/i386 aptitude install ethertool aptitude clean exit
Po nainštalovaní nástroja som ešte musel zaistiť jeho správne spúšťanie po štarte systému s parametrom g. Vytvoril som súbor /opt/ltsp/i386/usr/local/sbin/wolfix (áno, už som opustil prostredie chroot) s obsahom:
#!/bin/bash # oprava funkčnosti WoL /usr/sbin/ethtool -s eth0 wol g
Samozrejme nastavil mu práva na spustenie:
chmod +x /opt/ltsp/i386/usr/local/sbin/wolfix
Teraz možno vygenerovať nový obraz klienta:
ltsp-update-image --arch i386
A už známym postupom som pridal štartovací súbor do lts.conf:
RCFILE_02 = /usr/local/sbin/wolfix
Tentokrát som premennej RCFILE pridal číslo 02, pretože inak by som si prepísal predchádzajúci skript.
Samozrejme, celé to začalo fungovať až po nasledujúcom vypnutí, aby sa tento skriptík aspoň raz vykonal.
Čítal som návod pre nastavenie vypínania klientov v určenom čase na základe úlohy pre CRON. Tento spôsob sa mi ale nepáčil, pretože mi príde trochu obmedzujúci, a to tým, že nevypína stroje vždy keď to potrebujem, ale len vo vopred určenom čase. I preto som rozmýšľal na iným riešením. Hoci som uvažoval o odľahčenej implementácii pomocou "švajčiarskeho nožíka" na TCP/IP siete, zvaného netcat (nc), nakoniec som toto riešenie, kvôli nulovej bezpečnosti, zavrhol a použil odľahčený SSH server dropbear.
Ako prvú vec je treba nainštalovať dropbear v chroot prostredí klienta:
export LTSP_HANDLE_DAEMONS=false chroot /opt/ltsp/i386/ aptitude install dropbear aptitude clean exit
Po nainštalovaní klienta by som mohol (a vy pokojne môžete) vygenerovať nový obraz klienta, nabootovať ho a overiť si, že na klientovi skutočne beží SSH server, lenže zatiaľ vyžaduje zadanie hesla, čo nie je najvhodnejšie. Preto je ďalším krokom nastavenie autentifikácie pomocou kľúčov. Najprv je potrebné vygenerovať si na serveri kľúč, ak ho ešte nemáte. Tento si môžem vygenerovať ako root, ale lepšie bude ako bežný používateľ (aby som sa mohol prihlasovať bez poteby root):
ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/slavko/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/slavko/.ssh/id_rsa. Your public key has been saved in /home/slavko/.ssh/id_rsa.pub.
Ako vidno vo výpise, kľúč som nechal vygenerovať do východzieho umiestnenia (/home/slavko/.ssh/id_rsa) a nezadal som passphrase. Po vygenerovaní kľúča ho ešte musím dostať do prostredia klienta, ale samozrejme iba jeho verejnú časť, ktorá je v súbore .ssh/id_rsa.pub.
Stačí prosté presmerovanie výstupu, ale už zase ako root:
mkdir /opt/ltsp/i386/root/.ssh chmod 700 /opt/ltsp/i386/root/.ssh cat /home/slavko/.ssh/id_rsa.pub >> /opt/ltsp/i386/root/.ssh/authorized_keys chmod 700 /opt/ltsp/i386/root/.ssh/authorized_keys
A teraz je ta správna chvíľa na vygenerovanie nového obrazu:
ltsp-update-image --arch i386
Potom už len nabootovať a prihlásiť sa, nezabúdajte, že ssh sa predvolene pokúša prihlásiť pomocou mena práve prihláseného používateľa, preto mu treba meno zadať napríklad pomocou parametra -l alebo priamo k adrese pomocou zavináča:
ssh root@ltsp101
Pripomínam, že najprv je treba pozbierať digitálne podpisy klientov (dajte pozor na priraďovanie IP adries). S úspechom možno využiť nástroj ssh-keyscan.
Od tejto chvíle možno vypínať klientov pomocou príkazu (dropbear kašle na nastavenie PATH, tak je dobré zadávať príkazy s plnou cestou):
ssh root @ltsp101 /sbin/halt
prípadne reštartovať (napr. kvôli načítaniu nového obrazu):
ssh root @ltsp101 /sbin/reboot
Pre hromadné vypínanie/reštartovanie si možno pripraviť jednoduchý skript, ktorý postupne vykonáva ssh príkaz na jednotlivé klienty.
Pre zjednodušenie života som si napísal jednoduchý skript, pomocou ktorého môžem naraz obslúžiť celú triedu:
#!/bin/bash # skript pre poslanie príkazu všetkým LTSP klientom # Počet klientov, počiatočná a konečná IP CELKOM=15 MIN=101 MAX=$(($MIN + $CELKOM -1)) case $1 in start)
PAUZA="sleep 1.5"
POKEC="Zapínam klienta "
PRIKAZ="wakeonlan -i 192.168.10.255 ltsp"
ULOHA=""
;;
stop)
PAUZA="sleep 0.5"
POKEC="Vypínam klienta "
PRIKAZ="ssh root @192.168.10."
ULOHA="/sbin/halt"
;;
restart)
PAUZA="sleep 1.5"
POKEC="Reštartujem klienta "
PRIKAZ="ssh root @192.168.10."
ULOHA="/sbin/reboot"
;;
free)
PAUZA=""
POKEC="Stav pamäte klienta "
PRIKAZ="ssh root @192.168.10."
ULOHA="/usr/bin/free -m"
;;
*)
echo "Použitie:"
echo "$(basename $0) start | stop | restart | free"
exit 2
;;
esac
for CISLO in $(seq $MIN $MAX); do
$PAUZA
echo $POKEC$CISLO
$PRIKAZ$CISLO $ULOHA
done
Skript spúšťam pomocou samovysvetľujúcich parametrov, ktoré skript vypíše, keď ho spustím bez parametrov.
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
iTalc je užitočný nástroj pre zobrazovanie a vzdialenú správu počítačov. Nebudem tu popisovať jeho vlastnosti, podrobnosti môžete nájsť na stránke projektu. Samotný nástroj sa skladá z dvoch častí – italc-master a italc-client (pomenoval som ich podľa mien balíkov). Balík italc-master slúži ako administračné rozhranie a italc-client zase poskytuje informácie (a prístup) na strane klientov.
V prostredí LTSP je možné nainštalovať tento nástroj dvomi spôsobmi. Prvý, ktorý nebudem popisovať, pretože je dosť veľkou záťažou na sieť a výkon klientov, je nainštalovanie klientskej časti do chroot prostredia klientov. Druhý spôsob je inštalácia oboch častí len na server, čím je vylúčený reálny prenos informácií po sieti (celá komunikácia prebieha len na strane servera) a rovnako aj záťaž procesora klienta, avšak tento spôsob neposkytuje možnosť správy klientov pred prihlásením.
Najprv som teda nainštaloval na server balíky:
aptitude install italc-master italc-client
Po nainštalovaní sa v menu objaví položka pre spúšťanie iTalc, ktorá však nespúšťa priamo iTalc, ale italc-launcher, ktorý má v Ubuntu za úlohu, okrem iného, zaistiť automatické pridávanie klientov do iTalc. V reále je však pridaný každý klient dva krát, preto je vhodnejšie spúšťať iTalc priamo – tj. vytvoriť si vlastnú položku v menu.
Pre pridávanie klientov do prostredia iTalc je potom potrebné ich zadávanie ich IP adresy v podobe:
IP.SE.RV.ER:10XXX
Pričom ako adresu servera používam 127.0.0.1, ale možno použiť aj adresu rozhrania, na ktoré sú pripojené klienty. Číslo portu (za dvojbodkou) je v tvare 10XXX, kde to XXX je nahradené posledným trojciferným číslom IP adresy klienta. Napríklad pre klienta s IP adresou 192.168.10.51 bude IP pre italc vyzerať takto:
127.0.0.1:10051
Pozor: Automatické pridávanie klientov do iTalc (pomocou italc-launcher) funguje tak, že automaticky pridá klientov, ktorí majú prihláseného používateľa v okamihu štartu iTalc.
Ako som už naznačil niekde vyššie, vôbec sa mi neosvedčilo používanie predvoleného prostredia Gnome, možno i preto, že nie som naučený na toto prostredie. Robil som niekoľko pokusov, ktoré viedli cez FluxBox a OpenBox až k FVWM, teda celkom presne k FVWM-Crystal. FluxBox som zavrhol, pretože sa mi nepodarilo nastaviť noMachine pre prihlásenie k tomuto prostrediu. Niekoľko mesiacov som (študenti) používal OpenBox, s ktorým som bol spokojný vlastne až na jednu drobnosť, a to nemožnosť pridania ikon do menu.
FVWM-Crystal sa nakoniec ukázal ako výborná voľba aj preto, že študenti po prvý krát videli nielen viacero plôch, ale najmä koncept virtuálnych plôch a flexibilnosť grafického prostredia X Window.
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.
Na záver možno len toľko, že po viac ako šesť mesačnom používaní som s nasadením tohoto systému spokojný. Neznamená to, že všetko beží bez problémov. Študentom nekonečne chýba FlashPlayer, ktorý som musel zo servera odstrániť. Klientom som musel flashovať BIOS, aby sa aj po reštarte dokázali nabootovať (ale výrobca promptne vyvinul aktualizáciu na zákalde mojej požiadavky). Faktom je aj to, že hľadanie "správneho" správcu okien mi zabralo oveľa viac času ako som chcel.
Na druhej strane, samotné zabudovanie a nainštalovanie samotnej učebne mi (a siedmim žiakom) trvalo 20 (slovom dvadsať) minút, vrátane nastavovanie klientov na sieťový boot. Všetky zmeny robím na jednom mieste a nemusím už kvôli desaťmútovej práci obiehať vyše 2 hodiny 15 počítačov (15 x 10 min). Rovnako tak finančná náročnosť zriadenia. Nákup hardvéru pre učebňu nebol oveľa lacnejší ako nákup bežných stolných PC. Lenže tieto tenké klienty "morálne nezostarnú", keďže slúžia len na pripojenie klávesnice a monitora k serveru. Zostarnúť môže server, a tak v budúcnosti pre vynovenie učebne nie je potrebné nakúpiť celú učebňu počítačov, ale kúpiť silnejší server, prípadne dokúpiť ďalší.
V tejto triede vyučujem hodiny informatiky, aplikovanej informatiky a výpočtovej techniky. Hodiny sú, okrem všeobecných vecí, zamerané najmä na elektrotechniku a elektroniku. A viete, najkrajší pocit mám, keď môžem na školskú stránku umiestniť softvér na stiahnutie bez obáv z možného trestného stíhania. Rovnako aj, keď môžem žiakom povedať, že si ho môžu pokojne stiahnuť a používať a nepotrebujú na to žiadne peniaze...
No a v neposlednom rade, sú tu študenti. Títo prijímajú nový systém rôzne. Niektorí pozitívne, iný kritizujú všetko. Dosť ťažko sa vyrovnávajú s tým, že pracovná plocha vyzerá často inak a inak sa aj správa, pretože strácajú svoje pohodlie "znalosti" systému. Na druhej strane, rozširujú si svoj obzor a neodchádzajú z hodín s jednosmernými informáciami (ako moja dcéra, ktorá sa na hodinách informatiky naučila, že , citujem, "počítač bez Windows nefunguje...).
Článok (seriál) je prevzatý zo Sprievodcu dedinčana svetom IT, a je zverejnený pod licenciou Creative Commons Attribution-Share Alike 3.0 Unported License (CC-by-sa). Inými slovami, tu zverejnené informácie môžete rozmnožovať, rozširovať, vystavovať dielo a odvodené diela za podmienky uvedenia autora a použitia rovnakej licencie, a to aj na komerčné účely.