Ubuntu-LTSP: различия между версиями
Sol (обсуждение | вклад) |
Sol (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 25: | Строка 25: | ||
=== Установка === | === Установка === | ||
− | Устанавливаем | + | Устанавливаем Ubintu Server на подготовленый ПК с стандартного образа. |
sudo apt-get install ltsp-server-standalone | sudo apt-get install ltsp-server-standalone | ||
− | ==== | + | ==== Сторонный DHCP сервер ==== |
− | + | На DHCP сервере добавляем опции для работы PXE boot | |
− | shared-network eth0 { # | + | shared-network eth0 { # интерфейс который смотрит в локальную сеть |
− | subnet 10.11.25.0 netmask 255.255.255.0 { # | + | subnet 10.11.25.0 netmask 255.255.255.0 { # сеть на интерфейсе |
# | # | ||
# other setings | # other setings | ||
# | # | ||
# LTSP TFTP | # LTSP TFTP | ||
− | next-server 10.11.25.111; # | + | next-server 10.11.25.111; #ip LTSP сервера |
option root-path "/opt/ltsp/amd64"; | option root-path "/opt/ltsp/amd64"; | ||
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { | if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { | ||
Строка 51: | Строка 51: | ||
− | + | Если планируете использовать клиент i386 нужно сменить пути. | |
==== ltsp.conf ==== | ==== ltsp.conf ==== | ||
+ | |||
+ | Файл конфигурации для клиентских ОС. Поддерживает дефолтные настройки для "всех", персональные (по mac, ip) и груповые. | ||
/var/lib/tftpboot/ltsp/amd64/lts.conf | /var/lib/tftpboot/ltsp/amd64/lts.conf | ||
Строка 63: | Строка 65: | ||
SCREEN_02 = shell | SCREEN_02 = shell | ||
SCREEN_07 = ldm | SCREEN_07 = ldm | ||
− | # mount /home from the server | + | # mount /home from the external nfs server |
FSTAB_0 = "SERVER:/storage/homes /home nfs noatime,nodiratime,proto=tcp,nfsvers=3,_netdev 0 0" | FSTAB_0 = "SERVER:/storage/homes /home nfs noatime,nodiratime,proto=tcp,nfsvers=3,_netdev 0 0" | ||
Строка 73: | Строка 75: | ||
DNS_SERVER = 10.20.25.6 10.35.25.6 | DNS_SERVER = 10.20.25.6 10.35.25.6 | ||
− | SEARCH_DOMAIN = my.domain.1 my. | + | SEARCH_DOMAIN = my.domain.1 my.local.domain |
HOSTNAME_BASE = local- | HOSTNAME_BASE = local- | ||
Строка 99: | Строка 101: | ||
# Включаем поддержку SSH | # Включаем поддержку SSH | ||
− | RCFILE_01 = "ssh-keygen -A ; /usr/sbin/sshd" | + | RCFILE_01 = "/usr/bin/ssh-keygen -A ; /usr/sbin/sshd -D" |
# Отключаем USB накопители | # Отключаем USB накопители | ||
Строка 124: | Строка 126: | ||
[1.50.20.26] | [1.50.20.26] | ||
HOSTNAME = dsa.local | HOSTNAME = dsa.local | ||
− | LDM_THEME = /usr/share/ldm/themes/ | + | LDM_THEME = /usr/share/ldm/themes/default_full-HD |
XRANDR_COMMAND_0 = "xrandr --output VGA-0 --mode 1920x1080 --primary" | XRANDR_COMMAND_0 = "xrandr --output VGA-0 --mode 1920x1080 --primary" | ||
XRANDR_COMMAND_1 = "xrandr --output HDMI-0 --mode 1280x1024 --right-of VGA-0" | XRANDR_COMMAND_1 = "xrandr --output HDMI-0 --mode 1280x1024 --right-of VGA-0" | ||
Строка 194: | Строка 196: | ||
==== ltsp-build-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 ==== | |
− | + | <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] | |
− | |||
==Ссылки== | ==Ссылки== | ||
Строка 219: | Строка 223: | ||
[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