Содержание

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.24)
  • ОС СН Смоленск 1.6 (с установленным обновлением безопасности Update5)

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

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


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

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

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

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

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

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

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

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


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

sudo apt install ltsp-server-standalone xrdp ssh
При установке пакета 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
Возможные необязательные параметры:

--chroot <название папки> - название папки с образом относительно каталога /opt/ltsp/ (по умолчанию - amd64);

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

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

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

В опции --late-packages названия дополнительных пакетов должны быть указаны через запятую без пробелов.



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

В ОС СН Смоленск для сборки образа нужно настроить репозиторий или примонтировать установочный диск (или образ диска) 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, или в том подкаталоге каталога /opt/ltsp/, который был указан с помощью необязательной опции --chroot.

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

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

sudo ltsp-chroot -m
apt update
useradd -g adm -G sudo -s /bin/bash -m <adminname>
passwd <adminname>
exit
При необходимости для команды ltsp-chroot может быть указан дополнительный параметр -a <имя каталога>, задающий расположение образа (аналогично параметру --chroot команды ltsp-build-client);

Обновить созданный образ:

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

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

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

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

    Где параметры:

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

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

    В параметре --late-packages названия дополнительных пакетов должны быть указаны через запятую без пробелов.

    Дополнительно может быть указан необязательный параметр --chroot с именем каталога для размещения образа.

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

    sudo ltsp-chroot -m apt install fly-all-main

    При необходимости для команды ltsp-chroot может быть указан дополнительный параметр -a <имя каталога>, задающий расположение образа (аналогично параметру --chroot команды ltsp-build-client);


  3. Аналогично, с помощью команды ltsp-chroot -m 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:

    sudo ltsp-chroot -m systemctl disable fly-dm

    При необходимости для команды ltsp-chroot может быть указан дополнительный параметр -a <имя каталога>, задающий расположение образа (аналогично параметру --chroot команды ltsp-build-client);


  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 <ARCH> && ltsp-update-image <ARCH>
    где вместо <ARCH> указать название каталога, в котором расположен образ (каталог указывается относительно каталога /opt/ltsp/ и, если не указать ничего - то будет использована архитектура amd64, т.е. будет использован  каталог /opt/ltsp/amd64/)

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

  • No labels

2 Comments

  1. Александр Левдонский

    При загрузке толстого клиента на "Орле", получаю следующую ошибку :

    ALERT!  /dev/nbd0 does not exist.  Dropping to a shell!

    С чем может быть связанна данная ошибка? 

  2. Александр Левдонский

    Толстый клиент заработал на Astra Linux CE 2.12.24.