Меню Рубрики

Установка ltsp сервера ubuntu

Linuxoid

OpenSource forever

LTSP: терминал-серверная технология загрузки бездисковых рабочих станций

Сейчас во многих организациях скопилось приличное количество компьютеров старого парка, отслужившие свое как морально, так и физически. Программное обеспечение, которое можно на них запустить уже далеко от требований и реалий сегодняшнего дня, а поэтому такие системы, пылятся в углу. Выбросить их жалко, а новых ни кто не дает. Но, не много напрягшись можно за пару дней вдохнуть в эти железки вторую жизнь, и на экране монитора компьютера с процессором Pentium 133, увидеть KDE последней сборки вместе с OpenOffice.org или Windows с последним офисом, слушать на таких системах музыку и смотреть фильмы. Не верите? Читайте дальше.

Назначение и возможности LTSP

Открытость Linux систем породила вокруг себя довольно много полезных проектов и часто для решения какой-нибудь проблемы необходимо просто найти подходящий. Загрузкой бездисковых терминалов занимается проект LTSP (Linux Terminal Server Project) – www.ltsp.org. Его задача — разработка необходимых дополнений для Linux, позволяющих подключить большое количество низкопроизводительных тонких клиентов к мощному Linux-серверу и использовать его ресурсы для выполнения любых задач, результат выполнения команд возвращается обратно клиенту, и выводятся на экран. К компьютеру, выполняющему основную наиболее трудоемкую работу предъявляются особые требования, особенно касается это к объему оперативной памяти, которой должно теперь хватать на всех и к скорости дисковых операций. А вот к рабочим станциям пользователя требования уже гораздо ниже. С возлагаемой на них задачей спокойно могут справиться и «четверки». А при использовании компьютера мощнее Р133 с 24 Мб ОЗУ и с 2 Мб видеокартой, увеличение производительности не заметно. Поддержка основной периферии вроде принтера, сканера, приводов компакт-диска и некоторых других обеспечивается сервером, но при установке дополнительных пакетов возможно их подключение непосредственно к терминалу.
Но и это еще не все. В этом случае жесткий диск становится не удел. Все приложения и необходимые для обработки данные могут находиться на сервере. Терминал в таком случае может использовать локальный жесткий диск лишь на первоначальном этапе для загрузки системы. Преимуществ такого способа много. Это удобство обновления и снижение стоимости ПО, резервирования информации, защиты от вирусов, снижение шума, пользователь не связан с конкретным компьютером, нет необходимости в администрировании клиентских систем. И главное большая долговечность клиентских машин как моральная, так и физическая. LTSP распространяется под лицензией GNU GPL.
Чтобы настроить LTSP, нужно понимать процесс. Поэтому буквально в двух словах как это работает. После включения питания управление передается как обычно BIOS, который в свою очередь выполняют инициализацию, проверку POST (Power-On-Self-Test) и анализируют порты на наличие дополнительных устройств. В ходе последней обнаруживается установленная сетевая карта, в энергонезависимой памяти которой обнаруживается код, начинающий выполняться после завершения теста (вариант загрузкой с других носителей несколько проще, но суть не в этом). Дальнейшую работу условно можно разделить на три этапа: получение IP-адреса, получение образа операционной системы, и собственно работа с данными. Чтобы получить IP-адреса программа загрузки инициализирует широковещательный запрос (для нашего примера 192.168.0.255, по умолчанию используется порт 68, протокол UDP) в котором указывается свой уникальный для каждой сетевой карты МАС-адрес. Для динамического распределения IP-адреса между компьютерами в сети используется служба DHCP. DHCP-сервер приняв запрос, находит конфигурацию соответствующую данному МАС-адресу и возвращает необходимые данные. После получения адреса клиент должен загрузить ядро операционной системы. Для этого используется облегченная версия протокола FTP, которая не требует идентификации и использует UDP протокол вместо TCP — TFTP. И чтобы пользоваться файловой системой, на другом компьютере на сервере должна быть настроена служба NFS. После загрузки ядра оно, уже как и положено берет бразды правления в свои руки. Причем все описанные сервисы могут быть установлены как на одном компьютере, так и разных системах. Вот сборкой готовой системы на основе LTSP мы и будем заниматься далее.

Выбор способа загрузки по сети

Клиентская система после включения питания должна получить IP-адрес вызвав DHCP-запрос, путь к загружаемому ядру и путь к каталогу который будет использован вместо корневого. Есть несколько вариантов, позволяющих сделать это, необходимо лишь выбрать более подходящий ситуации: сетевая загрузка, используя Etherboot, PXE, MBA, Netboot, не говоря уже о том, что можно просто загрузиться с дискеты, CD-ROM, USB или выбрав нужный пункт в меню при загрузке с жесткого диска. Выберем лишь один из них. Для получения готового образа EtherBoot, заходим на сайт rom-o-matic.net , выбираем версию EtherBoot и в выпадающем списке «Choose NIC/ROM type» выбираем марку чипа на сетевой карте. К выбору последней отнесись тщательно, иначе полученный образ работать не будет. Если в системе несколько сетевых интерфейсов выбери тот который будет использован для загрузки системы. В списке «Choose ROM output format» выбираем выходной формат. Доступно 10 вариантов. Например, при первоначальной настройке можно использовать загрузку с дискеты Floppy Bootable ROM Image (.zdsk), компакт-диска ISO bootable image with/without legacy floppy emulation (.iso/.liso), или жесткого диска HD (experimental) Hard Disk Partition Image (.zhd). Хотя в последнем случае удобнее использовать готовый образ для загрузчиков LILO, GRUB или SYSLINUX – LILO/GRUB/SYSLINUX loadable kernel format (.lzlilo) или для систем с LinuxBIOS – ELF (LinuxBIOS) ROM Image (.elf). Когда все будет работать можно скачивать прошивку для EPROM (Erasable Programmable Read-Only Memory — перезаписываемая память) ПЗУ сетевой карты Binary ROM Image (.lzrom) или PXE loadable ROM Image (.lzpxe). При нажатии на кнопку Configure можно отредактировать некоторые параметры будущего образа.
создание образа для загрузки

Читайте также:  Установка газовых счетчиков в бобруйске

Выбираем нужный вариант и жмем «Get ROM» в результате получаем нужный образ. Для записи образа на дискету даем следующую команду “cat your_image.lzdsk > /dev/fd0” (или #dd if=/path/to/rom-image of=/dev/fd0 bs=1024, как кому привычнее). Все программа первоначальной загрузки готова. Первоначально советую попробовать загрузиться с дискеты и настроить схему один сервер — один клиент, а после успешного преодоления всех подводных камней уже нарастить количество клиентов и заняться прошивкой кода в ПЗУ. Переходим к настройке сервера.

Установка сервера LTSP

LTSP доступен как набор пакетов для установки на Linux-cистеме, последние версии легко интегрируются в Ubuntu, Debian, Fedora Core, Gentoo и некоторыми другими дистрибутивами. Так же он доступен как часть уже готового дистрибутива (см. врезку). Начиная с версии 4.0, процесс установки и настройки сервера четко разделен, и стал более логичен. Можно скачивать пакеты или архивы для установки LTSP по одному с сайта проекта, или загрузить сразу одним 100 мегабайтовым iso-файлом (ltsp.mirrors.tds.net/pub/ltsp/isos/), а можно воспользоваться системой пакетов используемого дистрибутива. Здесь полная свобода выбора. Причем по сравнению с версией 3 четверка ставится на ура, и надписи вроде “Unknown distributive” встречаются редко. Хотя некоторых дистрибутивах процесс установки несколько отличается, так как разработчики используют собственные скрипты упрощающие установку LTSP, несколько отличаются и вводимые команды, хотя смысл процесса остается. К таким дистрибутивам относится Ubuntu, с его родным братом Kubuntu и будем работать далее, разницы в настройках между ними никакой. Чтобы посмотреть, что есть в Kubuntu по LTSP, вводим команду:

Все, возможно, не понадобится, установим пока только необходимое:

В этом случае будет установлен и DHCP сервер, если в сети уже имеется такой сервис, используй ltsp-server вместо ltsp-server-standalone. Причем, учитывая “мягкую” систему зависимостей в пакетах обрати внимание на поля “Предлагаемые пакеты” и “Рекомендуемые пакеты” в выводе apt-get. Кроме того, в Kubuntu предлагается пакет student-control-panel. С помощью этого аплета можно контролировать подключения клиентов к серверу.
создаваемая структура каталогов

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

Для ленивых можно посоветовать еще и пакет ltsp-utils содержащий две стандартные утилиты. Первая, ltspadmin предназначена для установки и обновления системы LTSP, вторая ltspcfg позволяет произвести первичные настройки.

Далее создаем рабочее окружение клиентов. В классическом варианте необходимо использовать утилиту ltspadmin, в Ubuntu для этих целей применяется утилита ltsp-build-client, которая использует репозитарий Ubuntu, работая в chroot окружении. Утилита имеет множество параметров, но в самом простом случае достаточно ввести:

После чего утилита создаст нужные каталоги, соединится с репозитарием, откуда будут получены все необходимые пакеты, некоторые системные настройки также перекочуют в созданное chroot окружение. По окончании установки скачанных пакетов, будут запущены еще два скрипта ltsp-update-kernels и ltsp-update-sshkeys (при необходимости в дальнейшем это можно сделать и вручную).
утилита ltspcfg

Первый скопирует системное ядро и обеспечит в дальнейшем его загрузку клиентами, создав необходимые файлы, второй создаст SSH ключи необходимые для обеспечения защищенной работы и аутендификации клиентов на сервере. Копии ключей будут помещены в файл /opt/ltsp/i386/etc/ssh/ssh_known_hosts, в таком виде:

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

Такой тип аутендификации используется в Ubuntu, в классическом случае пользователи вводят пароль на сервере XDMCP (Display Manager Control Protocol). Также отличием в работе является то, что при регистрации в Ubuntu используется специально разработанный для этих целей Python скрипт LDM, который адаптирован для работы через ssh. В классическом варианте пользователя встретит KDM, GDM или XDM. И наконец последним пунктом работы скрипта ltsp-build-client будет создание файла /etc/exports, в таком виде:

Читайте также:  Установка подшипников шкворня камаз евро

Слева указан каталог, который экспортирует сервер. Флаги ro или rw указывают на доступ только для чтения и для записи и чтения соответственно. А no_root_squash заменяет пользователя root более безобидным nobody. Параметры ro и no_root_squash, используются в файле по умолчанию и поэтому их можно смело опустить, хотя так нагляднее. После чего последует перезапуск сервера NFS командой “invoke-rc.d nfs-kernel-server reload”. Установку можно считать законченной теперь займемся доводкой и пройдемся по конфигурационным файлам, чтобы если что-то пойдет не так, быстро найти причину.

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

В настройках по умолчанию сервер LTSP для клиентских компьютеров будет использовать диапазон IP-адресов — 192.168.0.0, сам при этом получает адрес 192.168.0.1, его и буду придерживаться в дальнейшем. Если его, по каким либо причинам нужно его изменить, то не забудь подправить все файлы, о которых будет упоминаться в статье. В том числе и файле /etc/exports. После всех исправлений необходимо заново сгенерировать ключи, повторно запустив скрипт ltsp-update-sshkeys. Закончим с NFS. Строка в файле /etc/exports экспортирует в качестве корневого каталога клиентских систем каталог /opt/ltsp/i386. Бывает полезно разрешить использование файла подкачки, который физически будет располагаться на сервере, а на клиенте экспортироваться в /tmp/swapfiles (его размер указывается в файле lts.conf) и домашние каталоги пользователей. Дописываем в /etc/exports такие строки:

А в файл /opt/ltsp/i386/etc/fstab:

Теперь переходим к настройке службы DHCP и DNS. Как уже говорилось при установке пакета ltsp-server-standalone, будет установлен и сервер DHCP, который будет в работе использовать конфигурационный файл /etc/ltsp/dhcpd.conf (если он есть иначе — /etc/dhcp3/dhcpd.conf):

Небольшое пояснение. В начале конфигурационного файла расположены инструкции, относящиеся ко всем компьютерам сети. Их смысл очевиден. Поскольку на терминалах нет жесткого диска, то демону журналирования syslogd в строке option log-servers 192.168.0.1 указывается удаленный сервер, который будет записывать от него сообщения. Для того чтобы демон syslogd на сервере мог принимать сообщения от терминалов в файле конфигурации /etc/sysconfig/syslog должен использоваться ключ -r:

Далее идут индивидуальные настройки для каждого компьютера клиента. Здесь можно переопределить настройки сервера индивидуально. В строке hardware Ethernet 00-02-44-07-FC-C4 указывается аппаратный МАС-адрес сетевой карты, а в строке fixed-address 192.168.0.110 за ним статически закрепляется IP-адрес. Теперь при запросе клиента с указанным МАС-адресом, ему всегда будет выдаваться этот IP-адрес. Остальным же он будет назначаться на общих правилах, из таблицы свободных адресов. Строка option root-path указывает на раздел, который будет смонтирован в качестве корневого с помощью службы NFS. Если в сети используется как обычные системы, так и без дисковые клиенты, то его можно следует использовать только для без дисковых станций переместив их в индивидуальные секции.

Не забудь подправить файл /etc/hosts прописав описание компьютеров сервера и клиентов:

Настройка TFTP

Во время установки в список зависимостей попадут и пакеты tftpd-hpa и netkit-inetd, а в файл демона inetd /etc/inetd.conf, будет занесена строка для запуска tftp:

Если уже используется xinetd, то следует удалить netkit-inetd, и создать файл /etc/xinet.d/tftp:

И не забудь убрать в /etc/xinetd.conf строку only_from = localhost. На этом настройки этих серверов можно считать законченными. Желательно проверить их работу перед применением, запускаем “sudo /etc/init.d/xinetd start” и даем следующие команды:

Имя файла указано так потому, что корневой каталог для этого сервиса определен в файле /etc/xinet.d/tftp как server_args = -s /var/lib/tftpboot, т.е. этот каталог делается корневым (chroot), и поэтому если указать полный путь, то сервер просто не найдет необходимый файл.
Осталось убедиться, что portmap не ограничен loopback интерфейсом, строка -i 127.0.0.1 в /etc/default/portmap закомментирована. И в целях безопасности в /etc/hosts.allow ограничиваем доступ к portmap, rpc.mountd, rpc.statd и in.tftpd только с нашей сети:

Перезапускаем все используемые сервера:

Настройки параметров работы клиентов производятся в файле /opt/ltsp/i386/etc/lts.conf. Этот файл состоит из общих установок и разделов определяющих индивидуальные настройки для каждого клиента. В них при необходимости можно переопределить те или иные глобальные установки. Благодаря такой схеме появляется возможность более гибкой адаптации к аппаратной конфигурации терминалов. Этот файл можно редактировать как вручную, так и используя скрипт /usr/lib/ltsp/ltsp_config.
Вот и все. Самое интересное, что это действительно работает. На клиентском компьютере спокойно загружается KDE с OpenOffice и работает с вполне терпимой скоростью, после перехода на оконный менеджер полегче вроде IceWM система вообще летает. Наиболее очевидное применение данной технологии это наши учебные заведения со старыми компьютерными классами, где добавление одного мощного компьютера позволит работать с современным ПО.

Готовые рецепты

Хотя самым простым вариантом познакомиться или установить сервер LTSP, это взять один из дистрибутивов, в которых эта технология включена по умолчанию. В первую очередь это версия Ubuntu ориентированная для использования в учебных заведениях Edubuntu (www.edubuntu.org). Кстати именно на нем отрабатывается следующая версия пакета LTSP5, основное отличие которой отказ от специализированных пакетов и максимальное использование оригинальных пакетов идущих в репозитариях дистрибутивов. Другой известных проект K12Ltsp (www.k12ltsp.org) аналогичного назначения базируется на Fedora Core 4, также включает в себя последнюю версию LTSP. Кстати один из его разработчиков Эрик Харрисон (Eric Harrison) является одним из активных участников проекта LTSP. Тем, кому ближе Debian можно посоветовать SkoleLinux (в девичестве Debian Edu) — www.skolelinux.org. К сожалению, канадский проект EduLinux (www.edulinux.cl) выпускавший готовое решение на основе Mandrake Linux 9.1 уже более двух лет не ведет активной разработки своего дистрибутива. Есть русская версия сайта проекта LTSP — www.ltsp.ru, где найдете некоторую документацию.

Читайте также:  Установка аудиосистемы лада приора

источник

Настройка LTSP сервера на Ubuntu 18.04 | LinuxMint 19

Последнее изменение: 30.01.2020

Сегодня рассмотрим пример установки и настройки LTSP сервера на Ubuntu 18.04.

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

Я не буду приводить пример установки самой системы Ubuntu 18.04 или Linux Mint 19, благо материалов на эту тему в интернете куча. Будем считать, что система установлена и готова к использованию.

Все действия я проделываю на чистой системе (только что установленной).

Обновляем систему

Для обновления репозиторий и системы набираем следующую команду в терминале:

После обновления всех пакетов в актуальное состояние, нам необходимо установить два пакеты для запуска LTSP сервера.

Установка DNS

Устанавливаем bind9 и настраиваем вашу зону.

Как настроить зону для DNS на Ubuntu 18.04 смотрим статью — Установка и настройка DNS (bind9) на Ubuntu.

Установка DHCP

Далее устанавливаем пакет isc-dhcp-server

После того как настроили DNS и DHCP приступаем к установке LTSP сервера и клиента:

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

Далее набираем следующую команду:

Приведенная выше команда установит по умолчанию 64-битный образ ubuntu. Если вы предпочитаете 32-разрядный образ, наберите такую команду:

На этом этапе запасаемся терпением и ждем окончания процесса настройке клиента.

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

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

Для того, чтобы внести какие-нибудь изменения в гостевую ОС, например установить дополнительное ПО, используется команда

Набрав данну команду вы поподаете в систему ltsp под root пользователем.

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

Устанавливаем необходимые пакеты для работы клиентов. Установка производится из системы ltsp

Добавляем пользователя который будет подключатся к системе.

Если хотим добавить пользователя в группу sudo, то пишем следующую команду:

Чтобы изменения применились, нужно перегенерировать nbd-образ командой:

Теперь нам необходимо настроить загрузку нашего тонкого клиента, чтоб он мог по умолчанию через 15 секунд загружать систему с жесткого диска или выбрав нижнее меню, загрузить уже нашу среду и провести восстановление системы у себя с помощью ntfsclon

Для корректной работы загрузчика скопируем необходимую библиотеку..

Перезапускаем сервер tftp-hpa

Теперь можно попробывать загрузить «тонкий» клиен

Конфиг lts.conf

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

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

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

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

Чтобы изменения применялись, нужно перегенерировать nbd-образ командой ltsp-update-image

Если есть вопросы, то пишем в комментариях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник