LTSP — X terminale w wydaniu open source!
16.04.2016 | aktual.: 17.04.2016 23:57
Witam
W tym wpisie chciałbym choć troszkę przybliżyć działanie dość ciekawego projektu.Jest nim Linux Terminal Server Project, który w sposób znaczący ogranicza wydatki na sprzęt w firmach. Dlaczego? Ponieważ do uruchomienia klienta wystarczy nam dowolne MiniPC czy kilkuletni komputer.Osobiście jestem bardzo początkującym użytkownikiem Linuxa(w sumie nowa praca mnie do tego zmusiła na co wcale nie narzekam :‑) ), więc proszę o dystans do mojego podejścia do tematu.
Ważne
Pomijam w tym wpisie procesy elementarne np. ustawianie statycznego adresu ip dla interfejsu, tablice routingu itp. Zakładam,że każdy użytkownik zabierający się za konfigurację serwera terminalowego nie ma z tym większego problemu :)Środowisko!
PC z Ubuntu 14.04 64bit Intel NUC Kit DN2820FYK Switch TP‑LINK TLSG-108Porada
Pierwszą instalację oraz konfigurację polecam zrobić na wersji jądra 4.xDlaczego?
Ponieważ wersje niższe potrafią odmawiać posłuszeństwa we współpracy z niektórymi MiniPC. W komputerach stacjonarnych nie zauważyłem tej nieprawidłowości. Dla takich MiniPC w wersji jądra poniżej 4 trzeba tworzyć profile oraz kojarzyć je z urządzeniami, co w tej części wpisu wolał bym uniknąć.
Od słów do czynów!
To co musimy mieć zainstalowane na swojej dystrybucji to:TFTP: [code=bash]sudo apt‑get install tftp[/code]
NFS: [code=bash]sudo apt‑get install nfs‑common[/code]
DHCP: [code=bash]sudo apt‑get install isc‑dhcp-server[/code]
SSH: [code=bash]sudo apt‑get install openssh-server[/code]
Konfiguracja DHCP
Polecam konfigurację rozpocząć od ustawienia interfejsu na adres statyczny. W moim przypadku to będzie: 192.168.0.1/24. Następnie polecam usunąć powstały na skutek instalacji podstawowy plik konfiguracyjny poleceniem:sudo rm -r /etc/dhcp/dhcpd.conf
Utworzenie pustego:
sudo touch /etc/dhcp/dhcpd.conf
Oraz edycję:
sudo nano /etc/dhcp/dhcpd.conf
A tu przedstawiam przykładową konfigurację której sam używałem:
subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.20 192.168.0.40; option domain-name "przyklad.pl"; option domain-name-servers 8.8.8.8; option broadcast-address 192.168.0.255; option routers 192.168.0.1; next-server 192.168.0.1; # get-lease-hostnames true; option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/amd64"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/amd64/pxelinux.0"; } else { filename "/ltsp/amd64/nbi.img"; } }
Trzeba pamiętać o wybraniu domyślnego interfejsu w pliku:
sudo nano /etc/default/isc-dhcp-server
Znajdujemy linię:
Interfaces = "" <- i tu wpisujemy nazwę naszego interfejsu.
No i teraz to co najciekawsze!
Instalację odpowiednich pakietów oraz wstępną konfigurację rozpoczynamy poleceniem:
sudo apt-get install ltsp-server-standalone
A tą komendą "zbudujemy cienkiego klienta":
sudo ltsp-build-client
Zróbmy sobie przykładowego użytkownika o nazwie test
sudo adduser test
W ten sposób mamy poprawnie skonfigurowane podstawowe środowisko! Poprawne bootowanie:
Aby je przetestować należy połączyć serwer z klientem przy pomocy switcha oraz podziwiać oto taki widok:
A teraz troszkę teorii, która pozwoli nam lepiej zrozumieć istotę samego projektu. Klienci logują się do swoich kont za pomocą kont lokalnych w standardowej konfiguracji.Wszystkie działania wykonywane są na serwerze, a tylko wyniki w postaci x‑ów przesyłane są do terminali. Stacje takie nie muszą posiadać dysku! Wszystko przechowuje się na serwerze. Daje nam to bardzo dużą kontrolę nad użytkownikami w naszej sieci oraz bardzo ogranicza koszt sprzętu, kiedy potrzebujemy zwiększyć liczbę stanowisk. Samo uruchomienie usługi w środowisku testowym daje sporo frajdy.
Zdaje sobie sprawę z częściowo chaotycznego i okrojonego charakteru tego wpisu. Jestem praktykiem, więc sam nie lubię wychodzić poza zbędne minimum teorii.Specjalnie nie zamieszczałem zbyt wielkiej ilości treści z wikipedii, ponieważ jest to na wyciągnięcie ręki. Wpisy będą kontynuowane więc sądzę, że na sam początek to wystarczy.
Czekam na opinie oraz opisy. W razie jakichkolwiek problemów pozostaję do dyspozycji.
have fun!
PS: Dla leniwców :)