Ubuntu-LTSP: различия между версиями
Sol (обсуждение | вклад) |
Sol (обсуждение | вклад) |
||
(не показано 25 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Категория:Linux]] | [[Категория:Linux]] | ||
− | + | == 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 == | ||
+ | |||
+ | === TCIN client === | ||
+ | |||
+ | === FAT client === | ||
+ | ==== ltsp-build-client ==== | ||
+ | ==== 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 ==== | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Add admin user === | ||
+ | === Add user === | ||
+ | |||
+ | == Theme == | ||
+ | |||
+ | [https://b00merang.weebly.com/windows-10.html Windows 10] | ||
==Ссылки== | ==Ссылки== | ||
+ | [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