Содержание
Page History
Сейчас мы попробуем создать сервер терминалов LTSP на базе Astra Linux Common Edition ОС ОН Орел с загрузочным образом для бездисковых станций.
Table of Contents | ||
---|---|---|
|
Info |
---|
Данная статья применима к:
|
Режимы работы
Существует два режима работы клиентов:
- тонкий клиент - По сети загружается минимальный образ с базовой системой и графическим сервером. Все приложения выполняются на сервере терминалов, результаты работы передаются по сети графическому серверу на клиенте.
- толстый клиент - Загружается полноценный образ с ОС. Приложения выполняются непосредственно на клиенте, а сервер просто предоставляет доступ к пользовательским файлам и программам.
Настройка сервера
Настройка сети
В примере на сервере используется 2 сетевых интерфейса:
eth0
- смотрит в интернет.eth1
- во внутреннюю сеть, в которой находятся тонкие клиенты.
Сеть на сервере настроена следующим образом:
eth0 - DHCP
eth1 - static
ip: 192.168.56.100
mask: 255.255.255.0
Включение удаленного доступа
Разрешим удаленный вход в систему:
Панель управления → Система → Вход в систему → Дополнительно - Разрешить удаленный вход в систему
Установка основных компонентов
Предполагается, что репозитории правильно настроены и установка пакетов из сети Интернет работает.
Command | ||
---|---|---|
| ||
apt install isc-dhcp-server ltsp-server tftpd-hpa |
- isc-dhcp-server - DHCP сервер. Используется для выдачи клиентам IP-адресов и информации о tftp-сервере и пути к загрузчику pxelinux.
- tftpd-hpa - сервер tftpd. Отдает по tftp-протоколу загрузчик, ядро и главный конфиг
lts.conf
. - ltsp-server - скрипты для создания сервера терминалов
Настройка DHCP сервера
В файле /etc/default/isc-dhcp-server в строке INTERFACECv4=""
указать интерфейс: eth1
Code Block | ||
---|---|---|
| ||
INTERFACECv4="eth1" |
Создадим конфигурацию для DHCP сервера:
Command | ||
---|---|---|
| ||
ltsp-config --overwrite isc-dhcp-server |
Command | ||
---|---|---|
| ||
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.bak |
Command | ||
---|---|---|
| ||
cp /etc/ltsp/dhcpd.conf /etc/dhcp/dhcpd.conf |
Заменим адреса в dhcpd.conf на нужные:
Code Block |
---|
# # Default LTSP dhcpd.conf config file. # authoritative; subnet 192.168.56.0 netmask 255.255.255.0 { range 192.168.56.20 192.168.56.250; option domain-name "example.com"; option broadcast-address 192.168.56.255; option routers 192.168.56.100; next-server 192.168.56.100; # get-lease-hostnames true; option subnet-mask 255.255.255.0; 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"; } } |
Перезапустим dhcp:
Command | ||
---|---|---|
| ||
systemctl restart isc-dhcp-server |
Настройка tftpd сервера
В файле /etc/default/tftpd-hpa изменим путь к корню тфтп сервера:
Code Block | ||
---|---|---|
| ||
TFTP_DIRECTORY="/var/lib/tftpboot" |
Перезапустим:
Command |
---|
systemctl restart tftpd-hpa |
Создание образа тонкого клиента
Anchor | ||||
---|---|---|---|---|
|
Скопируем конфигурацию Debian (т.к. для орла конфигурацию еще не придумали)
Command |
---|
cp -r /usr/share/ltsp/plugins/ltsp-build-client/Debian /usr/share/ltsp/plugins/ltsp-build-client/AstraLinuxCE |
Директория должна называться именно AstraLinuxCE
Поправим файл:
/usr/share/ltsp/plugins/ltsp-build-client/AstraLinuxCE/010-debootstrap
Строку
Code Block |
---|
LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR |
меняем на
Code Block |
---|
LC_ALL=C ${DEBOOTSTRAP:-"debootstrap"} --components "main, contrib, non-free" $DEBOOTSTRAPOPTS --arch $ARCH $DIST $ROOT $MIRROR |
Соберем образ:
Command |
---|
ltsp-build-client --dist orel --purge-chroot --mirror "http://dl.astralinux.ru/astra/current/orel/repository" --components "contrib, main, non-free" --kernel-packages linux-image-generic --early-packages vim |
Разберем опции:
--dist orel - собрать образ с системой "Орел"
--purge-chroot - очищать директорию с файлами образа
--mirror "http://dl.astralinux.ru/astra/current/orel/repository" - указываем репозиторий, откуда ставить систему.
--components "contrib, main, non-free" - используем все компоненты
--kernel-packages linux-image-generic - установить ядро generic по-умолчанию
--early-packages vim - установить редактор vim на стадии сборки
Все опции обязательны, иначе при сборки возникнут ошибки (хотя можно поправить сборочные скрипты в /usr/share/ltsp/plugins/ltsp-build-client/AstraLinuxCE)
По умолчанию образ собирается в /opt/ltsp/amd64
Настройка образа
Command |
---|
ltsp-chroot apt update |
Command |
---|
ltsp-chroot apt install ltsp-client-core |
зададим пароль для root:
Command |
---|
ltsp-chroot passwd root |
В /opt/ltsp/amd64/etc/ltsp/update-kernels.conf укажем тип загружаемого образа: NBD
Code Block | ||
---|---|---|
| ||
# Supported booth methods BOOT_METHODS="NBD" |
Выполним:
Command |
---|
ltsp-chroot bash /usr/share/ltsp/update-kernels |
В /opt/ltsp/amd64/etc/initramfs-tools/initramfs.conf указать использовать busybox
:
Code Block | ||
---|---|---|
| ||
BUSYBOX=y |
Установим busybox:
Command |
---|
ltsp-chroot apt install busybox |
затем пересоберем initramfs:
Command |
---|
ltsp-chroot update-initramfs -uk all |
Установим fly-dm (без него показывает черный экран) и xserver:
Command |
---|
ltsp-chroot apt install xserver-xorg fly-dm |
Запретим автозапуск fly-dm:
Command |
---|
ltsp-chroot systemctl disable fly-dm |
Обновим собранный образ:
Command |
---|
ltsp-update-image |
И перезапустим nbd-server:
Command |
---|
systemctl restart nbd-server |
Создаем пользователей на сервере терминалов, включаем тонкий клиент и выполняем загрузку по сети.
Создание образа толстого клиента
Установка дополнительных компонентов
Для корректной работы образа потребуется установка дополнительных компонентов на сервер терминалов:
Command |
---|
wget https://mirror.yandex.ru/debian/pool/main/l/ldm/ldm-server_2.2.18-2_all.deb wget https://mirror.yandex.ru/debian/pool/main/l/ltspfs/ltspfs_1.4-2%2Bb1_amd64.deb dpkg -i ldm-server_2.2.18-2_all.deb dpkg -i ltspfs_1.4-2%2Bb1_amd64.deb apt install -f apt install openssh-server squashfs-tools x11-utils xauth |
Собираем образ: Создание образа
Настройка образа
Command |
---|
ltsp-chroot apt update |
Command |
---|
ltsp-chroot apt install ltsp-client-core wget alsa-utils cron cups-bsd libasound2-plugins netcat ntpdate pulseaudio python-serial sane-utils sshfs x11-xserver-utils xorg xserver-xorg busybox |
зададим пароль для root:
Command |
---|
ltsp-chroot passwd root |
Загрузим доп компоненты
Command |
---|
ltsp-chroot cd /root wget https://mirror.yandex.ru/debian/pool/main/l/ldm/ldm_2.2.18-2_amd64.deb wget https://mirror.yandex.ru/debian/pool/main/l/ltspfs/ltspfsd_1.4-2_all.deb wget https://mirror.yandex.ru/debian/pool/main/l/ltspfs/ltspfsd-core_1.4-2%2Bb1_amd64.deb dpkg -i *.deb apt install -f exit |
Установим основные пакеты Fly
Command |
---|
ltsp-chroot apt install fly-all-main |
Так же можно установить метапакеты (или же необходимые пакеты по отдельности)
- fly-all-optional - ark, clementine, compton, fly-admin-iso, fly-fm-crypt, gparted, guvcview, kgpg, librsvg2-bin, qapt-deb-installer, qbat, recoll, speedcrunch, synaptic, vlc, vlc-astra, vlc-l10n, vlc-plugin-access-extra, xca, yelp
- fly-all-games - klines, kmines, kpat, supertux, warzone2100, xonotic
- libreoffice - кроссплатформенный, свободно распространяемый офисный пакет с открытым исходным кодом
Запретим автозапуск fly-dm:
Command |
---|
ltsp-chroot systemctl disable fly-dm |
В /var/lib/tftpboot/ltsp/amd64/lts.conf меняем значение сессии на default, и добавим параметр LDM_PASSWORD_HASH для корректной работы блокировщика экрана:
Code Block |
---|
# If you're using Unity, you might want to install gnome-session-fallback and # use it by default instead, as it performs better on LTSP thin clients. LDM_SESSION="default" LDM_PASSWORD_HASH=True |
В /opt/ltsp/amd64/etc/ltsp/update-kernels.conf укажем тип загружаемого образа: NBD
Code Block | ||
---|---|---|
| ||
# Supported booth methods BOOT_METHODS="NBD" |
Выполним:
Command |
---|
ltsp-chroot bash /usr/share/ltsp/update-kernels |
В /opt/ltsp/amd64/etc/initramfs-tools/initramfs.conf указать использовать busybox
:
Code Block | ||
---|---|---|
| ||
BUSYBOX=y |
затем пересоберем initramfs:
Command |
---|
ltsp-chroot update-initramfs -uk all |
Обновим собранный образ:
Command |
---|
ltsp-update-kernels && ltsp-update-image |
Создаем пользователей на сервере терминалов, включаем тонкий клиент и выполняем загрузку по сети.