Portál AbcLinuxu, 20. května 2024 11:07

Linux Terminal Server Project - II

21. 1. 2003 | Tomáš Kopeček
Články - Linux Terminal Server Project - II  

Instalace. Konfigurace serveru a pracovních stanic.

Instalace

Co budeme potřebovat? Celá distribuce je rozdělena do těchto základních balíčků:

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

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.

Stanice

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ě.

Lokální tisk

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.

Lokální aplikace

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}

Závěr

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.

Související lánky

Linux Terminal Server Project - I

Odkazy a zdroje

Linux Terminal Server Project
Thinclient-HOWTO

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.