Wiki spuštěna 24. 7. 2025

Návod na instalaci LTSP

Linux Terminal Server Project – linux s tenkými klienty

Postupujeme podle návodu na http://ltsp.org/docs/installation a na https://wiki.debian.org/LTSP/Howto.

Při instalaci zvolíme metodu dvou interfaceů. Druhý interface musí být nakonfigurovaný před instalací ltsp. Musí se vyplnit IP adresa a maska, ale ne GW. Chceme-li jinou IP, než je defaultně nastavená (192.168.67.1), máme smůlu. Je to tam někde zadrátované.

Posloupnost kroků při instalaci:

  • Nejjednodušší je nechat si přidělit IP od DHCP serveru:
    ltsp dnsmasq
    Installed /usr/share/ltsp/server/dnsmasq/ltsp-dnsmasq.conf in /etc/dnsmasq.d/ltsp-dnsmasq.conf
    Restarted dnsmasq
  • Client image (chrootless):
    ltsp image /

    Tento krok se musí opakovat při každém přidání SW do image.

  • Konfigurace iPXE:
    ltsp ipxe

    Tento krok se musí opakovat, pokud jsme provedli ltsp image.

  • NFS server:
    ltsp nfs
  • ltsp.img:
    ltsp initrd

    Tento krok se musí udělat po každém updatu ltsp, po přidání uživatele, nebo po úpravě /etc/ltsp/ltsp.conf.

Updaty image

Při každém přidání/změně softwaru na serveru se musí vygenerovat nový image. Trvá to již docela dlouho, proto se to dělá přes noc pomocí crontabu. Dalším důvodem je to, že se dělají pravidelné updaty.

Nový image se vytvoří pomocí skriptu

update-ltsp.sh
#!/bin/bash
 
if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root (sudo bash -l)" 1>&2
    print_help
    exit 1
fi
 
echo "IMAGE"
ltsp image /
echo "IPXE"
ltsp ipxe
echo "NFS"
ltsp nfs
echo "INITRD"
ltsp initrd

Kde jsou všechny image (pro ipxe)

-rw-r--r-- 1 root root 169362625 Feb 18 06:06 /srv/tftp/ltsp/x86_64/initrd.img
-rw-r--r-- 1 root root  14928264 Jan 15 17:51 /srv/tftp/ltsp/x86_64/vmlinuz
IPXE
Installed /usr/share/ltsp/server/ipxe/ltsp.ipxe in /srv/tftp/ltsp/ltsp.ipxe
Skipped existing /srv/tftp/ltsp/memtest.0
Skipped existing /srv/tftp/ltsp/memtest.efi
Skipped existing /srv/tftp/ltsp/snponly.efi
Skipped existing /srv/tftp/ltsp/undionly.kpxe
NFS
Installed /usr/share/ltsp/server/nfs/ltsp-nfs.exports in /etc/exports.d/ltsp-nfs.exports
Restarted nfs-kernel-server
INITRD
Generated ltsp.img:
-rw-r--r-- 1 root root 171520 Feb 20 18:41 /srv/tftp/ltsp/ltsp.img

Konfigurace LTSP

Konfigurace se provádí v souboru /etc/ltsp/ltsp.conf. Ten je rozdělen na sekce [server], [common], [clients] a případně další týkající se jednotlivých klientů nebo monitorů (viz http://ltsp.org/man/ltsp.conf/).

Úpravy provedené u nás

  1. Sekce [server]
    • NFS_HOME=1

      Namountuje adresář /home, takže vše, co uživatelé zapíší na klientovi do svého adresáře, se zapisuje na disk na chomském.

    • OMIT_FUNCTIONS="remove_printers"

      Nutné pro to, abychom viděli tiskárny.

  2. Sekce [clients]
    • IMAGE_TO_RAM=0

      Image se stále čte z disku, šetří se tím paměť.

    • REMOTEAPPS="users-admin mate-about-me seamonkey emacs google-chrome google-chrome-stable"

      Tyto aplikace běží na serveru. Šetří se tím prostředky klienta.

    • # LOCAL_SWAP=0

      Tímhle se taky šetří prostředky, ale když nemáme lokální disk, je to jedno.

    • FSTAB_CNK="ada:/mnt/cnk-cephfs  /cnk    nfs     auto,nofail,noatime,nolock,intr,tcp,actimeo=1800        0       0"
      FSTAB_HOME="server:/home        /home   nfs     defaults,nolock 0       0"
      FSTAB_STORE="server:/store      /store  nfs     defaults,nolock 0       0"
      FSTAB_STORE2="server:/store2    /store2 nfs     defaults,nolock 0       0"
      FSTAB_SYN2020="server:/usr/local/syn2020        /usr/local/syn2020      nfs     defaults,nolock 0       0"

      Tyto řádky se přidají do lokálního /etc/fstab a namountují se příslušné disky. Data zapsaná na tyto disky jsou tak zachována.

    • CUPS_SERVER="ignore"

      Ignorujeme CUPS server na LTSP serveru, ale zkopírujeme tiskárny do lokálního LTSP serveru.

    • HOSTS_JAKOBSON="78.128.204.173  jakobson"
      HOSTS_JAKOBSON723="192.168.128.1        jakobson.723"
      HOSTS_GRIMM="78.128.204.175     grimm"
      HOSTS_GRIMM723="192.168.128.4   grimm.723"

      Přidáme tyto adresy do lokálního souboru /etc/hosts.

      HOSTS_KORPUS="195.113.53.66     korpus.cz"
      HOSTS_FF="195.113.53.2  ff.cuni.cz"

      Tyto dvě adresy musíme přidat proto, že DNS server přiřadí jména prohledávaných domén k adrese 127.0.1.1.

    • POST_INIT_SUDO="sed '/^sudo:/ s/$/,skoumal,jelinek,pavelv/' -i /etc/group"
      POST_INIT_EPO="sed '/^epoptes:/ s/$/,skoumal,jelinek/' -i /etc/group"
      POST_INIT_AUDIO="sed '/^audio:/ s/$/,skoumal,jelinek,petkevic,rosen,krivan,hnatkova,sindlerova/' -i /etc/group"
      POST_INIT_PULSE="sed '/^pulse:/ s/$/skoumal,jelinek,petkevic,rosen,krivan,hnatkova,sindlerova/' -i /etc/group"
      POST_INIT_PULSEACCESS="sed '/^pulse-access:/ s/$/skoumal,jelinek,petkevic,rosen,krivan,hnatkova,sindlerova/' -i /etc/group"

      Takto upravujeme lokální soubor '/etc/group'.

    • LIGHTDM_CONF="greeter-setup-script=/usr/bin/numlockx on"

      Tímhle zařídíme zapnutý Numlock při přihlašování.

    • PASSWORDS_ANY="local-admin/VmVsZTQsOG4K"

      umožní přihlásit se uživateli local-admin z klienta. Heslo se získá pomocí příkazu base64:

      base64
      heslo_v_plain_textu
      Ctrl-D

Zvuk

Měl by fungovat “sám od sebe”, jenom je třeba přidat všechny uživatele do skupiny audio, pulse a pulse-access (viz výše). Několik programů, které nám vypíšou zvukové karty, umožní mixáž zvuku a otestují výstup:

  • aplay -l

    Co vidí ALSA.

  • pacmd list-cards

    Co vidí pulseaudio.

  • alsamixer
  • pulsemixer
  • speaker-test -t wav

Pokud vše funguje, všechno nastavíme a otestujeme v Sound Settings.

Pokud zvuk nefunguje, je třeba zkontrolovat konfigurační soubory, hlavně jestli uživatelé u sebe nemají nějaké staré šunky.


QR Code
QR Code wiki:user:skoumal:ltsp (generated for current page)