Portál AbcLinuxu, 30. dubna 2025 11:27
Instalace. Konfigurace serveru a pracovních stanic.
Co budeme potřebovat? Celá distribuce je rozdělena do těchto základních balíčků:
LTSP core - vše společné pro libovolné volby systému.
Kernel - pro každou stanici je potřeba mít připravené jádro s odpovídajícím ovladačem síťové karty. Jádro je celkem aktuální (2.4.19) a bude postačovat většině nasazení. Pokud si budete chtít zkompilovat vlastní, tak vás upozorním na patch, který je potřeba pro umožnění swapování přes síť nfs-swap pro stanice s nedostatkem paměti. Po kompilaci je také potřeba jádro pozměnit pomocí programu mknbi.
X Core - Má-li na stanici běžet X server, budete potřebovat tento balíček.
X fonts - Pro X server jsou k dispozici základní fonty.
Dále předpokládejme, že budeme používat rozsah IP adres 192.168.0.0/24, tedy adresy určené pro sítě, které nebudou přímo připojeny k internetu. Bylo by totiž naprosto zbytečné stanicím přidělovat reálné IP adresy. Veškerá komunikace s okolím bude provozována přímo serverem.
Pro většinu uživatelů asi bude nejjednodušší instalace na server pomocí systému RPM (k dispozici jsou i balíčky tar.gz a .deb). Tedy asi takto:
rpm -i lts_core lts_kernel lts_x_core lts_x_fonts
Pro verzi 3.x.x je základním adresářem /opt/ltsp
. Přesuneme
se tedy tam a ještě trochu hlouběji do /opt/ltsp/templates
a
spustíme skript ltsp_initialize
. Tento skript upraví klíčové
soubory serveru. V témže adresáři se můžete podívat do jednotlivých
souborů, které popisují prováděné změny. Vypíšeme alespoň některé:
Dalším krokem bude nastavení jednotlivých stanic. Existují tři soubory v systému, které budeme modifikovat ručně. Jsou to:
/etc/dhcpd.conf
/etc/hosts
/opt/ltsp/i386/etc/lts.conf
/etc/dhcpd.conf
Pokud neznáte DHCP, tak vězte, že se jedná o Dynamic Host
Configuration Protocol a slouží k přenosu základních informací o
připojované stanici. Po nabootování stanice vyšle požadavek a server jí
přidělí IP adresu, jméno, adresu serveru, gateway, cestu k odpovídajícímu
jádru a cestu ke kořenovému systému pro stanici. Nastavení je celkem
jednoduché. Projdeme si ukázkový konfigurační soubor
/etc/dhcpd.conf.example
nainstalovaný předchozím skriptem.
ddns-update-style```````````none;
default-lease-time``````````21600;
max-lease-time``````````````21600;
option subnet-mask``````````255.255.255.0;
option broadcast-address````192.168.0.255;
option routers``````````````192.168.0.254;
option domain-name-servers``192.168.0.254;
option domain-name``````````"yourdomain.com";
option root-path````````````"192.168.0.254:/opt/ltsp/i386";
option option-128 code 128 = string;
option option-129 code 129 = text;
shared-network WORKSTATIONS {
`subnet 192.168.0.0 netmask 255.255.255.0 {
`}
}
group {
`use-host-decl-names``on;
`option log-servers```192.168.0.254;
`host ws001 {
```hardware ethernet``00:E0:06:E8:00:84;
```fixed-address``````192.168.0.1;
```filename```````````"/lts/vmlinuz-2.4.19-ltsp-1";
`}
`host ws002 {
```hardware ethernet``00:D0:09:30:6A:1C;
```fixed-address``````192.168.0.2;
```filename```````````"/lts/vmlinuz-2.4.9-ltsp-6";
`}
}
Z důležitých nastavení si všimněme adres a masek sítí. Je zjevné,
že počítáme s tím, že IP adresa serveru je 192.168.0.254 a maska sítě
255.255.255.0. Místo, kde je umístěn souborový systém pro každou stanici,
je zadáno pomocí option root-path
.
Pro každou stanici existuje záznam s IP adresou a jádrem. Příkladem
budiž záznam ws001
. To je budoucí jméno stanice s ethernetovou
adresou 00:E0:06:E8:00:84
.
Zápis dalších stanic je opravdu triviální.
/etc/hosts
Druhým souborem, do kterého musíme zapsat další údaje, je
/etc/hosts
. Je to soubor, do kterého se systém podívá,
pokud potřebuje převést jméno počítače z IP adresy a obráceně. Pokud zde
není nalezena hledaná dvojice, tak vyšle požadavek DNS serveru. Tak je
alespoň většina počítačů nastavena. Toto chování lze změnit pomocí
souboru /etc/host.conf
. Předpokládejme, že tedy obsahuje
jediný řádek order hosts, bind
, který popisuje výše uvedený
způsob. Samotný soubor /etc/hosts
pak bude obsahovat tyto
údaje:
192.168.0.1 ws001
192.168.0.2 ws002
192.168.0.254 server
/opt/ltsp/i386/etc/lts.conf
A vzhůru do hlavního konfiguračního souboru.
[Default]
SERVER`````````````= 192.168.0.254
XSERVER````````````= auto
X_MOUSE_PROTOCOL```= "PS/2"
X_MOUSE_DEVICE`````= "/dev/psaux"
X_MOUSE_RESOLUTION`= 400
X_MOUSE_BUTTONS````= 3
USE_XFS````````````= N
LOCAL_APPS`````````= N
RUNLEVEL```````````= 5
[ws001]
XSERVER````````````= auto
LOCAL_APPS`````````= N
USE_NFS_SWAP```````= N
SWAPFILE_SIZE``````= 48m
RUNLEVEL```````````= 5
[ws002]
XSERVER````````````= XF86_SVGA
LOCAL_APPS`````````= N
USE_NFS_SWAP```````= N
SWAPFILE_SIZE``````= 64m
RUNLEVEL```````````= 3
[ws003]
MODULE_01 = agpgart.o # This is for i810 video
MODULE_02 = uart401.o
MODULE_03 = sb.o`io=0x220 irq=5 dma=1
MODULE_04 = opl3.o
První sekcí je [Default]
. Obsahuje výchozí nastavení.
Zastavíme se u položky XSERVER
. Nastavení auto
říká, že se X server (4.x) pokusí detekovat videokartu a nahraje
odpovídající ovladač. Tato možnost je pro valnou většinu karet postačující.
Druhou možností je zapsání konkrétního serveru (3.3.6) bez nutnosti
detekce. Tuto možnost doporučuji použít pouze v případě problematické
detekce karty. Položka USE_XFS
zakazuje použití font serveru,
podobně LOCAL_APPS
pak spouštění lokálních aplikací.
Položka RUNLEVEL
umožňuje tyto tři volby:
Kromě sekce [Default]
může mít každá stanice vlastní
sekci. Nastavení v této sekci může přidat další volby, či předefinovat
výchozí hodnoty. Vidíme například položku USE_NFS_SWAP
, která
umožňuje swapování přes síť při nedostatku paměti. S touto položkou je
svázán i údaj SWAPFILE_SIZE
. Pro stanici lze definovat, které
jaderné moduly se musí nahrát včetně jejich pořadí, viz volby
MODULE_xx
. V dokumentaci je popsáno asi 60 různých voleb.
Zájemce tedy odkazuji tam.
Tímto jsme, snad úspěšně, nastavili server a můžeme se pustit do terminálových stanic.
Máme několik možností, jak bootovat jednotlivé stanice. Budeme se zabývat mojí oblíbenou variantou. Nejdříve zaváděcí program odzkoušíme na disketě a pokud budeme chtít, tak jej následně přesuneme do paměti EEPROM na síťové kartě.
Buď si budete tento program chtít zkompilovat sami a pak vás odkáži na
adresu www.etherboot.com, nebo jste
příliš pohodlní a použijete stránku www.rom-o-matic.net. Zde si vybereme
model síťové karty ve stanici. Můžeme nastavit spoustu voleb a hlavně
zvolíme výstupní formát Floppy bootable ROM image
. Získaný
soubor směle přesuneme na disketu například takto:
dd if=/tmp/eb-rtl8139.lzdsk of=/dev/fd0
Nyní můžeme disketu vložit do stanice (nesmíme zapomenout v BIOSu nastavit bootování z diskety) a spustíme ji (rozuměj stanici). Pokud jsme udělali vše podle návodu, respektive dobře, tak systém naběhne až k uvítací obrazovce X-windows. Nyní se uživatel může přihlásit a pracovat víceméně bez omezení. Pokud se nám bootování z diskety osvědčí, pak můžeme přejít k přehrání programu přímo do paměti EEPROM na síťové kartě.
Tiskárna může být připojena k serveru a pak jde pro všechny klienty o
lokální tisk. To je samozřejmě nejjednodušší varianta. Z různých důvodů
(vesměs lokačních) ale budeme chtít, aby byla některá z tiskáren připojena
k některé stanici. Není to problém, LTSP umožňuje připojit až tři tiskárny
ke stanici. Veškeré nastavení stanice se odehrává v souboru
lts.conf
. Předvedeme si nastavení běžné tiskárny na paralelním
portu.
[ws001]
PRINTER_0_DEVICE = /dev/lp0
PRINTER_0_TYPE = P
Pro nastavení terminálu již nemusíme dělat nic. Na všech počítačích, které budou tuto tiskárnu používat, ji samozřejmě nastavit musíme. Použijeme tedy běžný konfigurační nástroj pro tiskárny (vi) a přidáme jednu vzdálenou. K tomu budeme potřebovat IP adresu terminálu a port, na kterém běží patřičný démon. IP adresu známe a port je 9100. Případné další tiskárny použijí porty 9101 a 9102.
Pokud se rozhodneme pro tuto možnost, budeme muset zprovoznit službu NIS. Každá aplikace totiž musí vědět něco o uživatelích a skupinách. Projekt LTSP volí právě cestu pomocí NIS (Network Information Service), který je zatím asi nejpoužívanější možností zpřístupnění těchto dat.
V souboru lts.conf
se nás budou týkat tyto volby:
LOCAL_APPS
, NIS_DOMAIN
a NIS_SERVER
.
Názvy jsou celkem samovysvětlující, takže pokročíme dál. Musíme mít na
mysli, že klienti asi nebudou stejné architektury jako server. Budeme-li
mít klienty Pentia a server Pentium II, tak asi některé knihovny a programy
nebudou spustitelné na klientech. Budeme tedy muset vytvořit zvláštní
souborový strom pro stanice. Ten je umístěn v adresáři
/opt/ltsp/i386
. Na serveru LTSP je umístěn například balíček pro
lokální Netscape. Pokud balíček pro svůj program nenajdete, tak opravdu
musíte vše udělat sami.
Pokud se vám již vše podařilo, můžete zkusit pustit program z terminálu. Pustíte-li ovšem běžný Netscape, tak se spustí na serveru a ne na terminálu. K obejití tohoto chování budeme používat mechanismu rsh (remote shell). To je další bezpečnostní díra a další důvod, proč byste měli používat firewall. Ale zpět. Třeba v xtermu napište:
HOST= echo $DISPLAY | awk -F: '{ print $1 }'
rsh ${HOST} MOZILLA_HOME=/usr/local/netscape \
/usr/local/netscape/netscape -display ${DISPLAY}
Doufám, že jste získali alespoň letmý přehled o tom, co projekt LTSP je, co umožňuje a jak se ovládá. Také doufám, že je to lákavá varianta, pro místa, kde druh operačního systému není životně důležitý a Linux by se tam mohl alespoň drápkem uchytit. Takže doufám, že až zase někdy navštívím knihovnu nebo internetovou kavárnu, tak slavnostně zasednu před stroj s tučňákem.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.