Ubuntu-LTSP: различия между версиями

Материал из Webko Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 24 промежуточные версии этого же участника)
Строка 2: Строка 2:
 
== LTSP server ==
 
== 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
 +
 +
<syntaxhighlight lang="bash">
 +
[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
 +
</syntaxhighlight>
 +
 +
==== 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 [email protected]
 +
''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 ==
 
== LTSP clietn ==
Строка 8: Строка 194:
  
 
=== FAT client ===  
 
=== FAT client ===  
 +
==== ltsp-build-client ====
 
==== Ubuntu Mate-desktop ====
 
==== Ubuntu Mate-desktop ====
 +
<syntaxhighlight lang="bash">
 +
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
 +
</syntaxhighlight>
  
+
==== Google Chrome ====
apt-get install software-properties-common python-software-properties
+
<syntaxhighlight lang="bash">
apt-add-repository ppa:ubuntu-mate-dev/ppa
+
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
apt-add-repository ppa:ubuntu-mate-dev/xenial-mate
+
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 upgrade
+
apt-get update
apt-get install ubuntu-mate-core ubuntu-mate-desktop
+
apt-get install google-chrome-stable
--no-install-recommends
+
</syntaxhighlight>
  
 +
=== Add admin user ===
 +
=== Add user ===
  
transmission
+
== Theme ==
  
Настраивается пакет toshset (1.76-4) …
+
[https://b00merang.weebly.com/windows-10.html Windows 10]
Настраивается пакет transmission-common (2.84-3ubuntu3) …
 
Настраивается пакет transmission-gtk (2.84-3ubuntu3) …
 
Настраивается пакет ttf-ancient-fonts-symbola (2.59-1) …
 
Настраивается пакет ubuntu-mate-icon-themes (16.04.7) …
 
  
 
==Ссылки==
 
==Ссылки==
 +
[https://help.ubuntu.com/community/UbuntuLTSP general info]
 +
 
[http://manpages.ubuntu.com/manpages/wily/man5/lts.conf.5.html ltsp.conf options]
 
[http://manpages.ubuntu.com/manpages/wily/man5/lts.conf.5.html ltsp.conf options]
 +
 +
[http://www.epoptes.org Epoptes admin tools]

Текущая версия на 14:45, 26 марта 2018

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 [email protected]
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