Ubuntu-LTSP

Материал из Webko Wiki
Перейти к навигации Перейти к поиску

LTSP server

Подбор железа

У меня сервер для толстых клиентов(FAT client) построен на ASUS P5KPL-VM, Intel Core2 Duo E4500, 4Gb RAM (2x 2Gb DDR2 Synchronous 800 MHz), md raid 1 250Gb (2x WDC WD2500YS-18S), тоесть на том что не жалко. Нужно понимать что вся инсталяция на текущий момент занимет около 14Gb, а пользовательские домашние каталоги находятся на отдельном nfs сервере.

Влияние железа LTSP сервера на работу:

  • на скорость сборки нового образа для клиентских ОС - процесор, скорость диска
  • на скорость загрузки клиентских ОС - скорость диска, сеть.

Сторонний nfs сервер - достался в качестве легаси от предедущего решения, сейчас все хомяки расположенные на нем являются хомяками пользователей установленой там ОС, что доставляет некоторый дискомфорт при добавлении новых пользователей (нужно соблюдать uid и guid пользователей на nfs и LTSP серверах в противном случае 100% провал).

Если будите строить схему с сторонним nfs сервером то монтируйте на LTSP сервер каталог отличный от /home(nfs сервера), например /srv/nfs/homes - в будущем избавит от лишних телодвижений.

lshw с nfs сервера:

  • ASUST M4A78LT-M LX
  • AMD Phenom II X2 555
  • 8GiB RAM (2x 4Gb DIMM Synchronous 1333 MHz)
  • md raid 10 500Gb (4х WDC WD5003ABYX-0)

Тут на производительность клиентских ОС в осноном влияют скорость диска и сети.

Установка

Устанавливаем Ubintu Server на подготовленый ПК с стандартного образа.

sudo apt-get install ltsp-server-standalone

Сторонный DHCP сервер

На DHCP сервере добавляем опции для работы PXE boot

shared-network eth0 {  # интерфейс который смотрит в локальную сеть
  subnet 10.11.25.0 netmask 255.255.255.0 {   # сеть на интерфейсе
  #
  #  other setings
  #
  # LTSP TFTP
       next-server 10.11.25.111;       #ip LTSP сервера
       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";
       }
  #
  #  other setings
  #
}


Если планируете использовать клиент i386 нужно сменить пути.

ltsp.conf

Файл конфигурации для клиентских ОС. Поддерживает дефолтные настройки для "всех", персональные (по mac, ip) и груповые.

/var/lib/tftpboot/ltsp/amd64/lts.conf

[Default]
        LTSP_FATCLIENT  = True

        SCREEN_02       = shell
        SCREEN_07       = ldm
        # mount /home from the external nfs server
        FSTAB_0 = "SERVER:/storage/homes     /home           nfs             noatime,nodiratime,proto=tcp,nfsvers=3,_netdev          0 0"

        LDM_PASSWORD_HASH       = true
        LDM_THEME       = /usr/share/ldm/themes/default

        LOCALE          = Europe/Kiev

        DNS_SERVER      = 10.20.25.6 10.35.25.6

        SEARCH_DOMAIN   = my.domain.1 my.local.domain

        HOSTNAME_BASE   = local-

        TIMEZONE        = Europe/Kiev
        TIMESERVER      = 10.20.25.6 10.35.25.6

# Настройки локалей и системного языка
        LC_ALL      = ru_RU.UTF-8
        LANG        = ru_RU.UTF-8
        LDM_LANGUAGE    = ru_RU.UTF_8

#       Настройка переключения клавиатуры и хоткеев
        XKBLAYOUT       = "us,ru,ua"
        XKBOPTIONS      = "grp:ctrl_shift_toggle,terminate:ctrl_alt_bksp"
        X_NUMLOCK       = true
        KEYTABLE        = ru
        LDM_NUMLOCK     = true

# Настраиваем звук и микрофон
        SOUND       = True
        MIC_VOLUME      = 0
        CAPTURE_VOLUME  = 50
        CAPTURE_SWITCH  = toggle

# Включаем поддержку SSH
        RCFILE_01       = "/usr/bin/ssh-keygen -A ; /usr/sbin/sshd -D"

# Отключаем USB накопители
        RCFILE_02       = "mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /ltspadmin"
        RCFILE_03       = "rmmod uas"
        RCFILE_04       = "rmmod usb_storage"

        CUPS_SERVER     = 10.20.20.111
        KEEP_SYSTEM_SERVICES    = cups

# group with enabled usb                                                                                                                                                                                 
[usb-users]
        RCFILE_02       = unset
        RCFILE_03       = unset
        RCFILE_04       = unset

# TEST PC
[1.50.20.25]
        LIKE            = usb-users
        LDM_THEME       = /usr/share/ldm/themes/default_17_1280x1024
        LDM_DIRECTX     = True

#dsa
[1.50.20.26]
        HOSTNAME        = dsa.local
        LDM_THEME       = /usr/share/ldm/themes/default_full-HD
        XRANDR_COMMAND_0 = "xrandr --output VGA-0 --mode 1920x1080 --primary"
        XRANDR_COMMAND_1 = "xrandr --output HDMI-0 --mode 1280x1024 --right-of VGA-0"

#dtp
[1.50.20.28]
        HOSTNAME        = dtp.local
        LDM_THEME       = /usr/share/ldm/themes/default_full-HD

# secretar
[1.50.20.30]
        LIKE            = usb-users
        HOSTNAME        = secretar.local

External home nfs-server

vim /var/lib/tftpboot/ltsp/amd64/lts.conf
# mount /home from the server
FSTAB_0 = "EXT-SERVER:/storage/homes     /home           nfs             noatime,nodiratime,proto=tcp,nfsvers=3,_netdev          0 0"

CUPS

Centralized

sudo apt install cups
cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
vim /etc/cups/cupsd.conf

edit

admin email
ServerAdmin bjoy@somebigco.com
listen on
Listen 127.0.0.1:631           # existing loopback Listen
Listen /var/run/cups/cups.sock # existing socket Listen
Listen 192.168.10.250:631      # Listen on the LAN interface, Port 631 (IPP)
allow clients
<Location />
 Order allow,deny
 Allow @LOCAL                  # all from localnet
</Location>
allow admins
<Location /admin>
 Order allow,deny
 allow from 10.20.20.59        # from ip
</Location>
admins auth
<Location /admin/conf>
 AuthType Default
 Require user @SYSTEM          # require system user from lpadmin group
 Order allow,deny
 allow from 10.20.20.59
</Location>
ltsp.conf
CUPS_SERVER=10.20.20.111   # ltsp-server ip
KEEP_SYSTEM_SERVICES=cups

Add cups admin user

usermod -aG lpadmin username

LTSP clietn

TCIN client

FAT client

ltsp-build-client

Ubuntu Mate-desktop

apt-get install software-properties-common python-software-properties
apt-add-repository ppa:ubuntu-mate-dev/ppa
apt-add-repository ppa:ubuntu-mate-dev/xenial-mate
apt-get update && apt-get upgrade
apt-get install ubuntu-mate-core ubuntu-mate-desktop --no-install-recommends

Google Chrome

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
apt-get update
apt-get install google-chrome-stable

Add admin user

Add user

Theme

Windows 10

Ссылки

general info

ltsp.conf options

Epoptes admin tools