Содержание

Skip to end of metadata
Go to start of metadata

Linux Terminal Server Project (LTSP) — свободно распространяемый пакет для Linux с открытым исходным кодом, позволяющий пользователям с маломощными компьютерами (терминалами) использовать вычислительные мощности одного более производительного компьютера (сервера). При этом все приложения могут запускаються на сервере, а терминалы, также называемые тонкими клиентами (или X-терминалами), просто принимают видеоряд, посылаемый сервером, и кроме него ничего не обрабатывают. Как правило, терминал представляет собой маломощный компьютер, в котором даже может отсутствовать жесткий диск, вследствие чего он может работать тише и потреблять меньше энергии, чем обычный настольный компьютер.

Подключение клиентов осуществляется по протоколу SSH (рекомендованный вариант), или по протоколу xRDP.

Входящая в состав Astra Linux версия LTSP поддерживает два режима работы клиентов:

  • "Тонкий клиент" - По сети загружается минимальный образ с базовой системой и графическим сервером. Приложения выполняются на сервере терминалов, результаты работы передаются по сети графическому серверу на дисплей терминального клиента. Дополнительно в этом режиме поддерживается возможность выполнения отдельных приложений на тонком клиенте (подробнее см. https://manpages.ubuntu.com/manpages/trusty/man5/lts.conf.5.html ).
  • "Толстый клиент" - Загружается полноценный образ с ОС. Приложения выполняются непосредственно на терминальном клиенте, а сервер просто предоставляет доступ к пользовательским данным и программам.


В принципе "тонкий клиент" от "толстого" отличается только местом исполнения, и режим исполнения может выбираться при запуске. Важным отличием "толстого" клиента является возможности установки в образ этого клиента дополнительных приложений.

По умолчанию клиент загружается в "тонком" режиме. Клиент загружается в "толстом" режиме (chroot в клиентскую систему) после установки в клиентский образ менеджера рабочего стола (fly-wm). Кроме того, для указания режима загрузки клиентов можно использовать опцию LTSP_FATCLIENT=true/false (по умолчанию не задана) в файле /var/lib/tftpboot/ltsp/amd64/lts.conf на сервере терминалов (подробнее см. https://manpages.ubuntu.com/manpages/trusty/man5/lts.conf.5.html ).


Данная статья применима к:

  • ОС ОН Орёл 2.12 (2.12.19)
  • ОС СН Смоленск 1.6 (с установленным обновлением безопасности)

В данной статье описывается работа с LTSP версии 5.18.12-3.1astra3. Эта версия позволяет создавать гостевые образы ОС ОН Орёл и ОС СН Смоленск на любой из этих ОС (по умолчанию создается гостевой образ соответствующий текущей хост-системе). Во время последнего обновления статьи  эта версия была доступна в тестовом репозитории ОС ОН Орёл.

Настройка сервера


Настройка сетевых интерфейсов

Типичный сервер LTSP имеет два сетевых интерфейса:

  • Первый интерфейс (eth0) подключен к Интернет, и настройки получает автоматически;
  • Второй интерфейс (eth1) подключен к локальной сети, и ему присвоен статический адрес (для примера 192.168.56.10 с маской 24). Через этот интерфейс осуществляется подключение клиентских машин (также находящихся в локальной сети).

Сетевые интерфейсы настраиваем любым предпочтительным способом, например, с помощью Network Manager.

Включение удаленного доступа

Для работы сервера LTSP нужно разрешить удаленный вход в систему:

"Панель управления" → "Система" → "Вход в систему" → "Дополнительно" - "Разрешить удаленный вход в систему"

Установка пакетов


Предполагается, что перед установкой пакетов правильно подключены и настроены репозитории (установочные диски).
Установка пакетов может быть выполнена с помощью графического менеджера пакетов или из командной строки командой:

sudo apt install ltsp-server-standalone xrdp
При установке пакета ltsp-server-standalone дополнительно будут установлены пакеты:

  • dnsmasq - встроенный сервер DHCP/TFTP. Используется для выдачи клиентам IP-адресов, информации о tftp-сервере и пути к загрузчику pxelinux, а также отдает по tftp-протоколу загрузчик, ядро и главный конфигурационный файл lts.conf;
  • ltsp-server - набор сценариев для создания сервера терминалов.

Установка пакета xrdp необязательна, и нужна для поддержки работы по протоколу xRDP в дополнение к протоколу SSH.


Настройка сервера DHCP

  1. Создать Файл конфигурации для DHCP сервера командой :

    sudo ltsp-config --overwrite dnsmasq

  2. Отредактировать файл конфигурации /etc/dnsmasq.d/ltsp-server-dnsmasq.conf.
    Минимальные исправления - указать диапазон адресов, выдаваемых сервером DHCP (в пример ниже отмечено выделением):

     Пример файла конфигурации
    # Configures dnsmasq for PXE client booting.
    # All the files in /etc/dnsmasq.d/ override the main dnsmasq configuration in
    # /etc/dnsmasq.conf.
    # You may modify this file to suit your needs, or create new ones in dnsmasq.d/.
    #interface=eth1
    # Log lots of extra information about DHCP transactions.
    #log-dhcp
    # IP ranges to hand out.
    dhcp-range=192.168.56.20,192.168.56.250,8h
    # The rootpath option is used by both NFS and NBD.
    dhcp-option=17,/opt/ltsp/amd64
    # Define common netboot types.
    dhcp-vendorclass=etherboot,Etherboot
    dhcp-vendorclass=pxe,PXEClient
    dhcp-vendorclass=ltsp,"Linux ipconfig"
    # Set the boot filename depending on the client vendor identifier.
    # The boot filename is relative to tftp-root.
    dhcp-boot=net:pxe,/ltsp/amd64/pxelinux.0
    dhcp-boot=net:etherboot,/ltsp/amd64/nbi.img
    dhcp-boot=net:ltsp,/ltsp/amd64/lts.conf
    # Kill multicast.
    dhcp-option=vendor:pxe,6,2b
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    dhcp-no-override
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    pxe-service=X86PC, "Boot from network", /ltsp/amd64/pxelinux
    # Comment the following to disable the TFTP server functionality of dnsmasq.
    enable-tftp
    # The TFTP directory. Sometimes /srv/tftp is used instead.
    tftp-root=/var/lib/tftpboot/
    # Disable the DNS server functionality of dnsmasq by setting port=0
  3. Перезапустить сервис dnsmasq командой:

    sudo systemctl restart dnsmasq


Создание образа тонкого клиента

Для создания образа тонкого клиента используется сценарий ltsp-build-client. Особенности применения сценария зависят от создаваемой гостевой ОС (ОС СН Astra Linux SE или ОС ОН Astra Linux CE).

ОС ОН Орёл

В ОС ОН Орёл по умолчанию для сборки образа будет использоваться тот же дистрибутив и/или архитектура что и на серверной системе, и сценарий сборки образа может быть вызван без параметров:

sudo ltsp-build-client
Возможные необязательные опции:

--dist <название дистрибутива> - задаёт для сборки дистрибутив, отличный от используемого по умолчанию дистрибутива серверной системы. Поддерживаются два варианта: orel или smolensk;

--mirror <url> - задаёт для сборки другое расположение зеркала репозитория, из котрого нужно ставить систему (по умолчанию http://dl.astralinux.ru/astra/current/orel/repository);

--early-packages <название пакетов> — установка в клиентский образ дополнительных пакетов (в ОС ОН Орёл по умолчанию устанавливается метапакет ltsp-client, предназначенный для установки только на терминальный клиент и включающий в себя всё необходимое для его функционирования);

ОС СН Смоленск

В ОС СН Смоленск для сборки образа нужно настроить репозиторий или примонтировать установочный диск (или образ диска) Astra Linux Special Edition релиз "Смоленск" версии 1.6. Например, образ установочного диска в файле smolensk-1.6-20.06.2018_15.56.iso можно примонтировать командой

sudo mount -o loop smolensk-1.6-20.06.2018_15.56.iso /media/cdrom
Для успешной сборки системы, помимо установочного диска, необходимы образы или диски обновлений безопасности smolensk и smolensk-update, а также образы update-repository и update-reporitory-dev. Сборка образа для ОС СН Смоленск осуществляется командой:
sudo ltsp-build-client --update-bin <path-to-smolensk-iso-image> --update-dev <path-to-update-smolensk-iso-image>
При этом, в дополнение к необязательным опциям сценария сборки, применяемым в ОС ОН Орёл, в ОС СН Смоленск используются две обязательные опции:

--update-bin - path/to/iso образ репозитория с обновлением smolensk;
--update-dev - path/to/iso iso образ репозитория с обновлением smolensk-devel.

В ОС СН Смоленск помимо устанавливаемого в ОС ОН Орёл метапакета ltsp-client будут установлены пакеты parsec и linux-astra-modules. В процессе работы сценария будут появляться запросы на установку/монтирование необходимых дисков в каталог /media/cdrom.

После завершения работы образ системы будет записан в /opt/ltsp/images. Распакованная система будет расположена в /opt/ltsp/amd64.

Настройка образа тонкого клиента

Опционально в отладочных целях рекомендуется обновить каталоги пакетов и задать пароль для локального администратора в клиентском образе: 

ltsp-chroot
apt update
useradd -g adm -G sudo -s /bin/bash -m <adminname>
passwd <adminname>
Обновить созданный образ:
ltsp-update-image
Перезапустить службы nbd-server, sshd, xrdp:
systemctl restart nbd-server sshd xrdp
По умолчанию для клиентов используется файл конфигурации, находящийся в образе терминального клиента (/opt/ltsp/amd64/etc/lts.conf).
Опционально рекомендуется создать отдельный файл конфигурации по умолчанию для LTSP клиентов:
sudo ltsp-config --overwrite lts.conf
После создания файла конфигурации на сервере терминалов для клиентов будет использоваться используется файл /var/lib/tftpboot/lts.conf.

Создание и настройка образа толстого клиента

Для создания образа толстого клиента нужно:
  1. Создать и настроить образ тонкого клиента по описанной выше процедуре или создать сразу образ толстого клиента:

    ltsp-build-client --fat-client-desktop fly-wm --late-packages sudo mc

    Где опции:

    --fat-client-desktop - название рабочего стола (fly-wm)

    --late-packages - название дополнительных пакетов, отсутствующих в стандатном наборе для создания тонкого клиента( в данном примере - пакеты sudo и mc)

  2. Если используется образ тонкого клиента, то установить в него основные пакеты Fly:

    ltsp-chroot apt install fly-all-main

  3. Аналогично, с помощью команды ltsp-chroot apt install установить в созданный образ опциональные метапакеты (или же необходимые пакеты по отдельности):

    • Метапакет 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 -  кроссплатформенный, свободно распространяемый офисный пакет с открытым исходным кодом;

    • другие необходимые пакеты;

  4. Запретить автозапуск fly-dm:

    ltsp-chroot systemctl disable fly-dm

  5. В /var/lib/tftpboot/ltsp/amd64/lts.conf изменить значение параметра LDM_SESSION на default, и добавить параметр LDM_PASSWORD_HASH для корректной работы блокировщика экрана:

    # 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
  6. Обновить ранее собранный образ клиента:

    ltsp-update-kernels && ltsp-update-image

После выполнения вышеуказанных действий на сервере терминалов нужно создать пользователей,  после чего можно можно выполнять загрузку клиентских машин по сети.

  • No labels