LTSP: Терминальный сервер на Linux


    Сейчас я расскажу вам о том, как можно сэкономить немалое количество времени и денег на вашей IT-инфраструктуре.
    Как централизованно админить большое количество linux рабочих станций не разводя при этом хаос в вашей экосистеме.
    И так, что же такое LTSP?


    LTSP — Это терминальное решение на Linux.
    Говоря "терминальное", я в первую очередь имею в виду не подключение к удаленному рабочему столу как в Windows. Я подразумеваю гораздо более гибкую и продвинутую систему доставки ПО, конфигов, домашенего каталога, да и самой операционной системы на клиентские рабочие станции с вашего терминального сервера.


    В частности, LTSP — это совокупность преднастроенных программ и скриптов которые позволят вам без особого труда превратить вашу свежеустановленную Ubuntu, или другой дистрибутив, в полностью готовое к работе терминальное окружение. Которое будет загружаться на любых компьютерах в вашей сети и предоставлять пользователю полноценный интерфейс.


    У LTSP есть несколько режимов работы:


    • тонкий клиент
    • толстый клиент

    Для того, чтобы понять в чем различие для начала нам нужно разобраться как LTSP работает.


    Принцип работы


    Допустим, у вас есть сервер и множество компьютеров (терминальных станций), которые вы раздаете пользователям, чтобы те за ними работали. Терминальные станции эти почти ничем не отличаются от обычных компьютеров, за исключением того, что их размеры обычно достаточно малы, для работы им не нужен жесткий диск и, кроме того, они могут быть довольно слабыми и дешевыми, на работе пользователей это не отражается (в режиме тонкого клиента). Стоит отметить, что в роли терминальной станции может выступать любой компьютер, который умеет загружаться по сети.


    Как я уже сказал, на терминальных станциях вполне может и не быть жесткого диска, а соответственно никакой операционной системы на них не установленно, вся загрузка происходит c LTSP-сервера прямо по сети.
    На терминальном сервере у вас установлена система, в ней же и хранятся все данные пользователей, конфиги, и ПО.
    Когда пользователь включает свой компьютер, у него загружается операционная система с терминально сервера, он может в нее войти, поработать, отключиться. При этом все данные всегда остаются на терминальном сервере.


    Теперь о режимах работы:


    • тонкий клиент — Приложения выполняются на терминальном сервере и просто выводятся на дисплей терминального клиента.
    • толстый клиент — Приложения выполняются непосредственно на терминальном клиенте, а сервер просто предоставляет доступ к пользовательским файлам и программам.

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


    Кроме того, режимы можно комбинировать и некоторые приложения можно заставлять работать иначе, чем все остальные. Например запускать "тяжелый" браузер с flash локально на клиентах, а офисные приложения запускать на самом сервере.


    Плюсы и минусы


    Давайте рассмотрим какие же плюсы мы имеем по сравнению со стандартными принципами построения ит инфраструктуры:


    • Централизованное управление — У вас есть одна единая конфигурация, которой вы управляете из одного места.
    • Резервирование и бэкапирование — Все пользовательские данные у вас хранятся на одном сервере, а соотвественно настроив резервирование этого сервера, вы никогда не потеряете пользовательские данные.
    • Экономия на компьютерах — Бездисковые терминальные станции стоят заметно дешевле, чем полноценные компьютеры.
    • Быстрое развертывание — Вам больше не нужно устанавливать ОС. Прикупив очередную пачку терминалов их можно смело втыкать в сеть, они сразу подтянут операционку с сервера и они будут полностью готовы к работе. Точно так же нерабочий терминал можно быстро заменить другим.
    • Независимость от рабочего места — Пользователи могут работать под своей учетной записью независимо с любого компьютера в сети, всегда будет подгружаться именно их личный профиль.
    • OpenSource — Прежде всего, LTSP — это открытый и свободный проект. Вам не надо покупать лицензии для его использования. Кроме того, вы всегда можете посмотреть исходники, в основе которых лежат обычные bash-скрипты.

    Минусы:


    • Требуется непрерывное подключение LAN — терминальные станции грузятся и работают по сети, поэтому требуется стабильное проводное подключение к сети.
    • Зависимость от сервера — понятное дело, без сервера все терминальные клиенты становятся бесполезными и превращяются в тыкву.

    Устройство


    Первое, что мы должны знать, это компоненты из которых состоит сервер:


    • DHCP-сервер — используется для выдачи клиентам IP-адресов и информации о tftp-сервере и пути к загрузчику pxelinux. Вы так же можете использовать ваш собственный DHCP-сервер.
    • TFTP-сервер — отдает по tftp-протоколу загрузчик, ядро и главный конфиг lts.conf.
    • NBD-сервер — используется ядром для загрузки базовой системы по сети. Так же, при желании, может быть заменен на NFS
    • SSH-сервер — используется для авторизации пользователей и передачи их домашних каталогов на терминальные станции.

    Во вторых разберемся в том как он работает:


    Когда вы установите на ваш сервер пакет ltsp-server-standalone, вы, к полностью настроенным сервисам, получите еще несколько ltsp-скриптов:


    • ltsp-build-client — собирает для нас образ системы, который мы будем отдавать на клиентские машины.
    • ltsp-chroot — chroot'ит нас в клиентскую систему, например для установки дополнительных пакетов и изменения конфигов.
    • ltsp-config — генерит дефолтные конфиги для LTSP.
    • ltsp-info — выводит информацию о текущей установке.
    • ltsp-update-image — обновляет nbd-образ базовой системы.
    • ltsp-update-kernels — копирует ядро и загрузчик из клиентского образа, в директорию tftp-сервера
    • ltsp-update-sshkeys — добавляет ssh publickey вашего сервера, в known_hosts клиентского образа.

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


    Как устроена загрузка по сети?


    Так же предельно важно понимать как устроена загрузка по сети, процесс загрузки выглядит примерно следующим образом:


    • Рабочая станция включается и опрашивает DHCP-сервер, как ей грузиться дальше:
      А точнее происходит запрос двух опций: next server — адрес TFTP-сервера и boot file — путь к загрузчику.
    • DHCP-сервер, выдает ответ с адресом сервера и путем к pxelinux.
    • Рабочая станция загружает загрузчик pxelinux по TFTP
    • pxelinux загружает ядро.
      В конфиге pxelinux в опциях ядра указанно откуда грузить основную систему по NBD
    • Когда ядро запускается, оно маунтит с сервера nbd-образ в корень системы и загружает процесс init, который в свою очередь и загружает все остальное обычным способом.
    • Так же в этот момент ltsp-читает главный конфиг lts.conf с сервера и запускает LDM, после чего пользователь видит приглашение к вводу логина и пароля.

    LDM — это логон менеджер LXDE, который отвечает за авторизацию пользователей и начальный запуск окружения.


    Скриншот окна входа

    image


    Когда пользователь логинится проиходит следующее:


    • В случае тонкого клиента, LDM заходит с введенным логином и паролем на ваш сервер по SSH,, если успешно, загружает окружение с сервера простым пробросом X'ов.
    • В случае толстого клиента, LDM пытается подключиться с введенным логином и паролем к вашему серверу, если успешно, то маунтит домашний каталог пользователя с сервера на клиент посредством sshfs, затем запускает окружение.

    Если вам нужна более подробная информация о загрузке Linux по сети, рекомендую обратиться к циклу статей Roshalsky, вот ссылка на первую.


    Установка


    Я опишу установку LTSP в режиме толстого клиента, как наиболее сложную и интересную.
    Настройка в режиме тонкого клиента мало чем будет оличаться, за исключением того, что необходимое ПО вам придется устанавливать не в chroot, а в основную систему, и после этого вам не нужно будет пересобирать nbd-образ.


    Маленькая оговорочка, для сервера лучше брать дистрибутивы посвежее, т.к. LTSP находится среди стандартных пакетов и обновляется вместе с дистрибутивом. Для гостевой ос лучше брать проверненную Ubuntu 14.04 LTS, т.к. если брать дистрибутив посвежее, потом начнутся проблемы, то загрузчик не станавливается, из-за переименования пакетов, то еще что.


    UPD: Проверенно, с последней Ubuntu 16.04 LTS таких проблем не возникает.


    Итак, приступим. Сначала устанавливаем ltsp-server-standalone:


    apt-get update && apt-get install ltsp-server-standalone

    Теперь с помощью ltsp-build-client мы установим клиентскую систему. LTSP поддерживает различные DE, но больше всего мне понравилось как работает LXDE. В отличии от Unity он потребляет совсем мало ресурсов и так-как работает на голых иксах, он почти полностью конфигурируется с помощью переменных среды, это очень удобно, так-как их можно указать в главном конфиге lts.conf.


    ltsp-build-client --dist xenial --arch i386 --fat-client-desktop lubuntu-desktop

    Все эти опции можно указать в конфиге /etc/ltsp/ltsp-build-client.conf, что бы не прописывать их вручную:


    ltsp-build-client.conf
    # Distribution
    DIST=xenial
    # The chroot architecture.
    ARCH=i386
    
    # ubuntu-desktop and edubuntu-desktop are tested.
    # If you test with [k|x]ubuntu-desktop, edit this page and mention if it worked OK.
    # kubuntu lucid (10.10) working okay.
    FAT_CLIENT_DESKTOPS="lubuntu-desktop"
    
    # Space separated list of programs to install.
    # The java plugin installation contained in ubuntu-restricted-extras
    # needs some special care, so let's use it as an example.
    #LATE_PACKAGES="
    #    ubuntu-restricted-extras
    #    gimp
    #    nfs-client
    #"
    
    # This is needed to answer "yes" to the Java EULA.
    # We'll create that file in the next step.
    DEBCONF_SEEDS="/etc/ltsp/debconf.seeds"
    
    # This uses the server apt cache to speed up downloading.
    # This locks the servers dpkg, so you can't use apt on
    # the server while building the chroot.
    MOUNT_PACKAGE_DIR="/var/cache/apt/archives/"

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


    После запуска комманды, у вас в полностью автоматическом режиме, с помощью debootstrap, развернется система в каталог /opt/ltsp/i386.


    Эта же система и будет использоваться в дальнейшем всеми командами LTSP, в нее будет устанавливаться дополнительное ПО, из нее будут генериться загрузчик с ядром и nbd-образ системы. В принципе, ее, так же можно отдавать по nfs при должной настройке загрузчика.
    После установки LTSP автоматически сгенерит из нее nbd-образ. Этот образ и будут загружить наши клиенты.


    Для того, чтобы внести какие-нибудь изменения в гостевую ОС, например устанавливать дополнительное ПО, используется команда ltsp-chroot.
    Если вы хотите что-то поменять или добавить в гостевую систему, выполните ltsp-choot и вы окажетесь внутри нее.
    Затем произведите нужные вам действия, и выйдите командой exit.
    Чтобы изменения применились, нужно перегенерить nbd-образ командой ltsp-update-image


    DHCP-сервер:


    Вместе с метапакетом ltsp-server-standalone у нас установился и isc-dhcp-server.
    В принципе он уже из коробки работает как надо, но при желании вы можете поправить его конфиг /etc/default/isc-dhcp-server.
    Есть классная статья на OpenNet от 2010 года на тему настройки LTSP, там неплохо описана процедура настройки DHCP-сервера.


    Но, так как я предполагаю, что у вас уже есть DHCP-сервер, предлагаю настроить его.


    Удалим isc-dhcp-server:


    sudo apt-get remove isc-dhcp-server

    Теперь вам нужно добавить к вашему dhcp-серверу 2 опции:


    next-server 192.168.1.2; # TFTP-сервер
    filename "/ltsp/i386/pxelinux.0"; # Загрузчик

    Как это сделать, смотрите инструкции к вашему DHCP-серверу.
    Вот, например инструкция как это сделать на оборудовании Mikrotik.


    Установка ПО


    • Давайте же войдем в нашу гостевую систему:


      ltsp-chroot

    • Теперь установим vim:


      apt-get update && apt-get install vim

    • Поддержку русского языка:


      apt-get update && apt-get install `check-language-support -l ru`

    • Последнюю версию Remmina:


      apt-add-repository ppa:remmina-ppa-team/remmina-next
      apt-get update
      apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard

    • Skype:


      add-apt-repository -y "deb http://archive.canonical.com/ $(lsb_release -sc) partner"
      apt-get -y update
      apt-get -y install skype

    • Браузер Chromium c плагином PepperFlash (свежий flash от google)


      sudo apt-get install chromium-browser
      sudo apt-get install pepperflashplugin-nonfree
      sudo update-pepperflashplugin-nonfree --install

    • Кстати, PepperFlash можно установить и запустить без Chromium, в Firefox:

    Установка PepperFlash для Firefox
    add-apt-repository -y ppa:skunk/pepper-flash
    add-apt-repository -y ppa:nilarimogard/webupd8
    apt-get -y update
    apt-get -y install pepflashplugin-installer freshplayerplugin
    mkdir -p /opt/google/chrome/PepperFlash
    ln -s /usr/lib/pepflashplugin-installer/libpepflashplayer.so /opt/google/chrome/PepperFlash

    • Чтобы администратор мог удаленно подключиться к сессии пользователя установим x11vnc:

    Установка x11vnc
    # Скачиваем пакет
    apt-get -y install x11vnc
    
    # Создаем скрипт запуска
    cat > /usr/bin/x11vncd <<EOT
    #!/bin/bash
    x11vncd () {
         XAUTH=\`ls -1td /var/run/ldm-xauth-* | head -n1 | sed 's|$|/Xauthority|'\`
         logger -f /var/log/x11vnc "Starting with \$XAUTH"
         /usr/bin/x11vnc -display :7 -rfbauth /etc/x11vnc.pass -logfile /var/log/x11vnc -xauth \$XAUTH 
         sleep 1
         x11vncd
    }
    x11vncd
    EOT
    
    # Создаем init-скрипт
    cat > /etc/init.d/x11vnc <<EOT
    #!/bin/sh
    
    ### BEGIN INIT INFO
    # Provides:x11vnc
    # Required-Start:\$remote_fs \$syslog
    # Required-Stop:\$remote_fs \$syslog
    # Default-Start:2 3 4 5
    # Default-Stop:0 1 6
    # Short-Description:Start X11VNC
    # Description:Start VNC server X11VNC at boot
    ### END INIT INFO
    
    case "\$1" in
            start) 
                    start-stop-daemon --start --oknodo --pidfile /var/run/x11vnc.pid --background --nicelevel 15 --make-pidfile --exec /usr/bin/x11vncd
            ;;
            stop)  
                    logger -f /var/log/x11vnc "Stopping"
                    start-stop-daemon --stop --oknodo --pidfile /var/run/x11vnc.pid
            ;;
            restart)
                    logger -f /var/log/x11vnc "Restarting"
                    \$0 stop
                    \$0 start
            ;;
            status)
                    PID=\`cat /var/run/x11vnc.pid\`
                    if [ -e /proc/\$PID ]; then
                            echo "Process \$PID is running"
                    else   
                            echo "No process matching"
                    fi
            ;;
            *)
                    echo "Usage: \$0 start|stop|restart|status"
                    exit 1
            ;;
    esac
    exit 0
    EOT
    
    # Разрешаем выполнение
    chmod +x /usr/bin/x11vncd /etc/init.d/x11vnc
    # Включаем службу при запуске
    update-rc.d x11vnc defaults
    # Задаем пароль
    x11vnc -storepasswd /etc/x11vnc.pass

    • И ssh-сервер:


      apt-get -y install openssh-server

    • Еще в Ubuntu 16.04 есть некая проблема, если не настроить xscreensaver, то через определенное время клиент покажет черный экран, из которого никак не выйти. Исправим это:


      Установим xscreenasver, если он еще не установлен:


      apt-get -y install xscreensaver

      Настроим автозапуск:


      cat > /etc/xdg/autostart/xscreensaver.desktop <<EOT
      [Desktop Entry]
      Type=Application
      Exec=/usr/bin/xscreensaver -nosplash
      Hidden=false
      NoDisplay=false
      X-GNOME-Autostart-enabled=true
      Name[en_US]=xscreenasaver
      Name=xscreensaver
      Comment[en_US]=
      Comment=
      EOT

      Если вы намерены блокировать экран с вводом пароля, не забудьте добавить следующую строку в ваш конфиг lts.conf:


      LDM_PASSWORD_HASH=true


    Не забываем выйти из chroot и обновить наш nbd-образ:


    exit
    ltsp-update-image

    Создание пользователей


    • Обычных пользователей терминального сервера можно создать стандартным способом:


      useradd -m -c "Иван Иваныч" -g users -s /bin/bash <username>
      passwd <username>

      Или через GUI если он установлен у вас на сервере


    • Также при желании можно создать локального администратора в клиентском образе:
      ltsp-chroot
      useradd -g adm -G sudo -s /bin/bash -m <adminname>
      passwd <adminname>
      exit
      ltsp-update-image

    Конфиг lts.conf


    Вот мы и подобрались к самому главному конфигу
    Находится он по адресу /var/lib/tftpboot/ltsp/i386/lts.conf и представляет ссобой нечто иное как описание глобальных переменных.


    Конфиг поделен на секции, в секции Default описываются настройки общие для всех клиентов:


    [Default]
    # Сессия LXDE
    LDM_XSESSION    = /usr/bin/dbus-launch --exit-with-session /usr/bin/lxsession -s Lubuntu -e LXDE
    # Настройки локалей и системного языка
    LOCALE          = Europe/Moscow
    LC_ALL      = ru_RU.UTF-8
    LANG        = ru_RU.UTF-8
    LDM_LANGUAGE    = ru_RU.UTF_8
    # Настройка переключения клавиатуры и хоткеев
    XKBLAYOUT       = "us,ru"
    XKBOPTIONS      = "grp:ctrl_shift_toggle,terminate:ctrl_alt_bksp"
    X_NUMLOCK       = true
    KEYTABLE    = ru
    LDM_NUMLOCK     = true
    # Разрешаем флешки
    HOTPLUG     = True
    # Разрешаем локальные диски
    LOCALDEV        = true
    # Настраиваем звук и микрофон
    SOUND       = True
    MIC_VOLUME      = 0
    CAPTURE_VOLUME  = 100
    CAPTURE_SWITCH  = toggle
    # Включаем поддержку SSH
    RCFILE_01       = "ssh-keygen -A ; /usr/sbin/sshd"
    # Настраиваем сбор логов
    SYSLOG_HOST     = server

    Также можно добавить секции для отдельных клиентов, на основе hostname, IP или MAC-адреса:


    # Настройка графики
    [oldmachine]
    X_COLOR_DEPTH=8
    X_MODE_0=800x600
    
    # Включить автологин
    [192.168.1.123]
    LDM_AUTOLOGIN = True
    LDM_USERNAME  = user
    LDM_PASSWORD  = password
    
    # Принт-сервер
    [00:11:25:93:CF:00]
    PRINTER_0_DEVICE=/dev/usblp0
    SCREEN_07=shell
    
    # FreeRDP, вместо стандартной оболочки
    [00:11:25:93:CС:11]
    SCREEN_07=xfreerdp
    RDP_SERVER=192.168.100.10
    RDP_OPTIONS="/f /sec:rdp /cert-ignore /multimon:force"

    Вообще полный список опций вы можете найти на этой странице, или в


    man lts.conf

    Итоги


    В итоге мы получаем одновременно гибкую, безопасную и простую в администрировании систему.
    Мы можем стандартными методами установливать любое ПО на нее, разграничивать права пользователей, править конфиги общие и для каждого юзера по отдельности, и не бояться за потерю данных.


    К тому же, благодаря свободной лицензии все это достается вам абсолютно бесплатно.


    LTSP можно использовать как в учебных заведениях, так и в обычных офисах, как для удаленного подключения к Windows, так и просто для обычной работы.


    UPD: widestream в комментариях отписал, что успешно использует похожую схему для создания рендер-фермы.


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


    Несколько интересных ссылок:


    • LTSP.org — Официальный сайт проекта.
    • UbuntuLTSP — Страничка на Ubuntu Wiki.
    • LTSP-Cluster. — Проект по созданию кластера на LTSP (для больших установок).
    • Raspi-LTSP — Интересный проект, который позволяет использовать Raspberry Pi в качестве терминальных станций.
    Заинтересовало ли вас это решение?
    Используете ли вы тонкие клиенты (терминальные станции)?

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

    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 28
    • +3
      У меня был похожий дипломный проект.
      Тема интересная, если у вас есть отказоустойчивая терминальная ферма.

      Ну и там есть проблемы с пробросом флешек в RDP сессию. Когда-то давно, я занимался этим вопросом.

      За труды спасибо, у вас получился добротный туториал.
      • 0
        Все нехорошо, только причем здесь RDP? В linux есть X server и VNC.
        Да и FreeRDP вроде как умеет, но не пробовал.
        • 0
          Подозреваю, UrbanRider имел ввиду использование LTSP для терминальных станций, с которых подключаются к терминальному серверу WIndows.
          Это тоже один из стандартных сценариев использования.

          В режиме толстого клиента флешки прокидываются как надо, куда как в режиме тонкого клиента, это действительно может создать проблемы.

          • 0
            Да, вы правы, я именно про этот сценарий и говорил, более того в пределах РФ применительно к корпоративному сегменту это один из наиболее часто встречающихся сценариев.
      • 0
        А можно примерно прикинуть нагрузку на сервер одним пользователем? Понятно, все зависит от совершаемых задач, но все-же?
        • 0
          В режиме толстого клиента, нагрузка на сервер будет практически никакая.
          Исключение — на момент загрузки или при активной работе с файлами, здесь все зависит от пропускной возможности вашей сети.

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

          Вот некоторые замеры:

          • LXDE примерно 200M~300M RAM (вместе со системой)
          • Unity примерно 500~600M RAM (вместе со системой)
          • Chromium с несколькими вкладками 200~500M RAM
          • Remmina 50M-100M RAM
          • LibreOffice Wirter 200M~300M RAM
          • +1
            Но все же все зависит от совершаемых задач. У меня 20 человек в режиме тонкого клиента комфортно себя чувствуют на двух четырех ядерных Xeon с 16Gb оперативной памяти(10-12 из которых съедают хромы да мозилы), в часы пик система загружена на 60-80% опятьже хромом да мозилой.
          • +2
            Как-то это сложно.
            Используем толстые клиенты — специфика компании, нужны большие вычислительные мощности.
            Все построено на tftp + pxe NFSROOT + ldap + монтирование /home и swap на локальный жесткий диск. В итоге имеем очень гибкую систему, которая позволяет на лету проводить изменения в ОС(сама ОС лежит на nfs — корень системы смонтирован на неё) при этом на полную использовать аппаратную часть. Единственная проблема — nvidia карты разных поколений.
            Рендер-фермой на ~100 нод управлять — одно удовольствие :)
            • 0
              Отличная идея для использования! — спасибо, добавлю в статью.
              • 0
                Если я правильно понял widestream, то он как раз не использует LTSP для рендер-фермы, а просто грузит Linux по сети.
                • 0
                  Я понял именно так, но был бы рад подучить уточнение.
                  Тем не менее, реализовать подобную схему на LTSP было бы очень несложно.
                  • 0
                    Действительно, мы не используем LTSP — такая реализация "эталонного образа" нам немного не удобна. К примеру, при установке какого-то пакета… либо банально изменения симлинка — необходимо перегружать всю ферму. Это чревато простоем и потерей денег — 100 нод * на ~5 минут перезагрузки = 500минут потерянного рендер-времени. 500 / 60 = 8.3(3) часа рендера. А это очень много :)

                    Мы же, монтируем корень на общую nfs шару, причем ОС не загружена полностью в память, как при эталонном образе. Итого одним легким движением руки все изменения одновременно появляются на всех нодах.
                    У нас кстати на debian jessie все крутится.

                    ПС: спасибо за упоминание в посте, но все же мы используем немного другую реализацию. Но насчет вашего варианта — разберемся намного более детально, так как востребованность есть. Сейчас вот шаманим над fedora.
                    • 0
                      LTSP — тоже не грузит образ целиком в память, образ отдается по NBD. NBD — это сетевое блочное устройство, при желании вы легко можете заменить его на NFS и точно так же отадавать корень гостевой системы по NFS, как это сделано у вас, тем самым разрешив проблему с применением изменений.

                      ps: Упоминание в статье поправил.
            • +1
              LTSP действительно крутая штука. Правда последний раз использовал её аж 5 лет назад. Вот и в статье упоминал в сравнении с другими вариантами.
              • 0
                Я имел позитивный опыт использования DRBL для спавна тонких клиентов по сети. Преимущество DRBL в его минималистичности. Удаётся разделить котлеты и мухи. DRBL позволяет легко раскидать в сети любой образ. В том числе минималистичный линукс с сессией настроенной на запуск сессии тонкого клиента. Зато ты совершенно не ограничен в том, какой терминальный сервис используешь. Можешь, например, раздавать доступ к терминальному серверу винды через freerdp. А можно через vnc дать доступ к своему линуксовому серверу терминалов.

                От добра добра не ищут, настроил раз и всё работает, поэтому я так и не узнал, чем LTSP лучше. И умеет ли он, например, тоже работать в гетерогенной среде, раздавая как линуксовые, так и виндовые сессии.

                Интересно, рассматривал автор этот вариант терминальной системы на линуксе, если да, то почему выбрал LTSP, какие преимущества в нём нашёл.
                • 0
                  К сожалению DRBL пробовать не довелось, но, на сколько я понимаю, принцип его работы такой же как и у толстого клиента LTSP.



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

                  раздавать доступ к терминальному серверу винды через freerdp

                  Пожалуйста:
                  # FreeRDP, вместо стандартной оболочки
                  [00:11:25:93:CС:11]
                  SCREEN_07=xfreerdp
                  RDP_SERVER=192.168.100.10
                  RDP_OPTIONS="/f /sec:rdp /cert-ignore /multimon:force"

                  И у вас вместо стандартного окна логина, будет загружаться экран входа в Windows.

                  Что примечательно, таким же образом можно запустить любую другую программу.
                  • 0
                    Про раскидывание образа я выразился чересчур вольно. Разумеется, копируется по сети только initrd, а корень монтируется по nfs. При наличии достаточно большого размера оперативки, конечно, возникает искушение в initrd запихать сразу всю систему, чтобы она тихо мирно сидела в памяти и сеть не тратила больше.

                    С freerdp понятно, я точно также создавал кастомные сессии для загрузки в DRBL. Так что функциональность идентичная за исключением того, что DRBL сам по себе не настраивает терминального сервера, его нужно конфигурировать отдельно.

                • 0
                  Планируем использовать данное решение в своей организации. Возник вопрос по обеспечению защиты информации. Какими сертифицированными по ФСТЭК и ФСБ средствами защиты можно защитить IT-инфраструктуру построенную на базе LTSP-сервера и тонких клиентов?
                  • 0
                    Сертифицированных средств защиты для Linux немного: слишком узкая ниша и высокая стоимость сертификации. Думаю, можно посмотреть в сторону сертифицированного дистрибутива (варианты есть на http://www.linuxcenter.ru/shop/sertified_fstek). Настраивать терминальные серверы и рабочие станции, скорее всего, придется руками: я не знаю, входят ли пакеты LTSP в состав сертифицированного решения и что прописано в эксплуатационной документации об установке стороннего ПО.

                    На всякий случай напоминаю, что по линии ФСТЭК России и ФСБ России сертификация осуществляется поэкземплярно (для ФСТЭК России это подтверждается номерной голограммой на дистрибутиве ПО). Поэтому то, что дистрибутив прошел сертификацию, еще не означает, что именно Ваш экземпляр сертифицирован.

                    PS На сайте ФСТЭК России есть полный реестр сертифицированных СЗИ, можете покопаться в нем (http://fstec.ru/component/attachments/download/489).

                    PPS Нашел интересный обзор по теме СЗИ для Линукс: http://www.aladdin-rd.ru/company/pressroom/articles/41672.
                  • 0
                    Все таки было бы интересно посмотреть как пробрасывается USB с тонкого клиента
                    • 0
                      для проброса USB-storage в Linux-сессию имеются встроенные средства в самой LTSP.
                      При подключении к RDP-серверу я использовал на клиенте autofs и rdesktop с опцией -r disk:media=/media
                    • 0
                      А таким образом можно подключить тонкие клиенты sun ray?
                      • 0
                        Интересно был ли опыт проброса USB принтеров в сеанс. Если у совсем конкретно, то интересует линейка hp 1010-1020 (да, знаю что морально устаревшие железки, но работают зараза).
                        • 0
                          Если у кого-то из читающих появится вопросы как и у меня, а это отдельно настроенный tftp-сервер, то прошу к продолжению этой статьи https://habrahabr.ru/post/281847/
                          • +1
                            Кому интересно:
                            Проверил работоспособность LTSP на Ubuntu 16.04 LTS, все работает без каких либо косяков и костылей.
                            Немного подправил данную инструкцию для Ubuntu 16.04 LTS.
                            • 0
                              Добрый день, скажите а как отменить установку клиентской системы? (Установить не смог, а теперь хочу всё обратно откатить).
                              • 0
                                rm -r /opt/ltsp/
                                именно там лежит содержимое образа, который получают клиенты
                              • 0

                                Прошу прощения за возможно глупый вопрос.
                                А есть ли способ подключения к LTSP серверу с Windows или Mac? Так сказать для удаленной работы под своим аккаунтов?

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