Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Прописываем файловые системы, расшаренные по сети:
|
Раскомментируем, и немного подправляем строки запуска tftpd через inetd:
|
Не забываем запустить сам inetd:
|
Прописываем запуск DHCP-сервера (у меня DHCP сервер (isc-dhcp30-server) находиться на этой же машине, у вас может находиться на другой):
|
У меня, настройки для заданной сети выглядят в dhcpd.conf примерно так:
|
Заливаем сорцы (csup) выбранного релиза, и собираем мир и ядро в директорию, которая будет расшарена по NFS/TFTP, устанавливаем системные конфиги:
|
После сборки мира и ядра, монтируем по nullfs порты и исходные коды ядра, относительно корневой директории будущих тонких клиентов:
|
Также, монтируем файловую систему устройств (понадобиться при сборке некоторых портов):
|
Сразу же, копируем некоторые файлы, которые нам понадобяться при дальнейшей работе - или для удобства дальнейшей работы:
|
И рисуем конфиги - резольвера:
|
Системного файла сборочной информации - make.conf:
|
Собственно, на этом моменте я попробовал загрузить одну машину с новой фрёй, но - обломался =) Я собрал GENERIC ядро, а оно по сети не грузиться =) Поэтому, чуть ниже будет ещё одна пересборка ядра, уже из chroot.
Теперь можно делать chroot в корневую директорию тонких клиентов, и собирать необходимый софт:
|
Ставим rdesktop - для подключения клиента к виндовому серверу терминалов:
|
Иксы - полностью:
|
Ставим monitord - он будет отслеживать падения rdesktop и перезапускать его при необходимости:
|
Где-то между делом - пока собираются порты - пересобираем ядро (это я пересобирал - а вы могли просто не собирать на этапе инсталляции клиента). Рисуем конфиг для ядра - оно мало отличается от GENERIC:
|
Также, пишем такие конфигурационные файлы/скрипты - для старта/работы тонкого клиента. Для начала реализуем монтирование/отмонтирование флэшек в тонких клиентах - через devd:
|
Собственно, скрипт монтирования - не забываем сделать исполняемым:
|
Кладём файл делающий sync раз в секунду:
|
Скрипт выполняющий отмонтирование:
|
Рисуем главный конфигурационный файл системы - rc.conf:
|
По последней секции - пара пояснений. Все указанные директории, права, и владельцы выдернуты из инсталляционных скриптов dbus, hald и прочей хиромантии. На тонком клиенте раздел /var создаётся в памяти, и, разумеется, там указанные директори отсутствуют. Конечно, можно было поправить файл /etc/mtree/BSD.var.dist. Тока лениво, да и при обновлениях придётся его снова править. Так проще и надёжней =)
Создаём файл монтирования файловых систем - fstab следующего содержания:
|
Опять же - пара пояснений - procfs используется monitord(8), для отслеживания работы приложений. Файловая система в памяти - tmpfs, с любопытной точкой монтирования, используется для хранения конфигурационного файла X-сервера - когда его приходиться запускать с ним (последние иксы достаточно умные, чтобы в 80% случаев работать вообще без конфигурационного файла).
Создаём конфиг для monitord, следующего содержания:
|
Пишем скрипт инициализации тонкого клиента, и делаем его исполняемым:
|
Создаём стартовый скрипт для rdesktop - его задача - запуск иксов с нужными параметрами:
|
Пишем скрипт для создания конфигурационнго файла X-сервера - если есть необходимость вручную выставить параметры (как уже упоминалось - в большинстве случаев, он сам корректно всё определяет):
|
Кладём шаблон конфигурационного файла иксов:
|
Кладём дефолтовый конфиг для тонких клиентов:
|
Ну, и, наконец, кладём конфигурационный файл лоадера:
|
Для корректной работы sshd необходимо сгенерить ключи. Проще всего это сделать прям в chroot:
|
Вот и всё. Для работы машинке (тонкому клиенту) требуется около 64 метров памяти (у меня работали на 64+16 - на 64Mb иксы стартуют, но сразу же убиваются ядром - памяти мало, а иногда нормально запускались и работали на 64. Думаю, зависит памяти ушедшей на диски в памяти), процессор - наверно не важно какой - из тех тазиков что выжили есть первый пень на 233 чтоли мегагерца - загружается и работает. Грузиться чуть медленней, чем предыдущая версия, на базе 4.11 и XFree - но, это операция разовая. Перезапуск осуществляется быстрей, monitord в течение 10-15 секунд подымает иксы при падении. Если на тазике есть звуковушка - то звук с сервера пробрасывается на локальную машину, можно музычку послушать =))). За работу флэшек отвечает параметр
|
в конфигурационном файле каждого конкретного клиента. Без него - флэшка всё равно монтируется, но - в терминальную сессию диск не пробрасывается.
Принцип работы - на старте системы запускается rc.d скрипт start.thin.client.sh. Он задёт имя хоста, запускает monitord (ну, до кучи выставляет звук на полную - бывает тихо он стоит и из терминалки это не поправишь).
Далее, уже запущенный monitord видит, что приложение rdesktop не запущщено - соответсвенно, выполянет скрипт /root/scripts/rdesktop.sh. Он, считывает конфигурационный файл конкретной машины (имя файла состоит из MAC-адреса, типа 00c0265c5c15.conf), создаёт конфигурационные файлы - для запуска иксов - если надо, файл .xinitrc - c указанием что именно запускать X-серверу, и файл с указанием языковой раскладки клавиатуры - .Xkbmap. После всех подготовительных операций, запускаются иксы.
При втыкании флэшки, происходит следующее - devd, заметив что что-то воткнули, и оно совпало с условием в его конфигурационном файле, выполняет указанный там скрипт - /root/scripts/mount.da0.sh. Скрипт проверяет флэшку при помощи fsck_msdosfs и монтирует её. При выдёргивании, всё тот же devd выполняет скрипт отмонтирвоания /root/scripts/umount.da0.sh. Юзеров лучше приучить чтоб ждали секунд несколько после того как записали чего-то. Данные целей будут.
Ну, и, о грустном - куда ж без этого.
1. Забраковалось несколько старых машинок - после загрузки ядра, перед монтированием по NFS корневой файлвоой системы, лезет в консоль такое:
|
Никакие бубны с ручной раздачей прерываний и прочего непомогают. Помогает отключение acpi через лоадер - но, тогда теряется некоторый функционал, который тоже хотелось окучить - отключение в 10 вечера всех тазиков по планировщику =( Решается установкой нормальной сетевухи - типа fxp, xl, em и прочия. Все машины, на которых была такая бага, с материнками под SLOT1.
2. Кушают много рамы - старая версия требовала мегабайт 40 для работы. Впрочем - это расплата за возможность использовать USB мышки/клавы, и не париться с конфигурацией иксов - в подавляющем большинстве случаев. Минимум, на котором у меня заводилось (настройки по статье, вернее - статья с тех настроек =)) - это ~58 мегабайт (на машине 64 рамы, 8 отдано встроенной видеокарте).
3. Не получилось смонтировать корневую файловую систему в read-only режиме. Хоть ты тресни - пытается в rw монтировать, и монтирует. При этом не понимает что по NFS оно расшарено в режиме тока чтения - на клиентах показывает что оно якбы rw - но записать ничё не получается. Бага задокументирована. Ждём ответа.
Вроде всё. Ушло - вечер на работу - скрипты писал пока компилялось, полчаса на отладку, и два дня на написание статьи =)
размещено: 2009-08-18,
последнее обновление: 2011-07-20,
автор: lissyara
Клец, 2009-08-18 в 22:09:01
Классный перец
MetiS1977, 2009-08-18 в 23:44:22
Спасибо. Надо будет попробовать.
Wlkatz, 2009-08-20 в 12:24:02
Гениально! Уважение и почете.
Andy2k, 2009-08-20 в 16:10:13
Отличная статья, спасибо. Когда то делал почти то же самое, но потом перешел на это http://itadvisor.ru/pts
Причина перехода - даже эникейщики, не говоря уже о Win-админах способны воткнуть в сеть новую машинку и (если нужно) прописать специфичные для нее параметры (имя/пароль пользователя терм. сервера, параметры экрана, флешка, проброс принтера и проч.).
Wlkatz, 2009-08-20 в 16:52:30
А я как раз отказываюсь от Thinstation, так как в версии 2.2 старый Xorg, а когда выйдет 2.4 неизвестно.
Dorlas, 2009-08-20 в 20:00:56
Отличная статья - большое спасибо!
Сам уже года 3 пользуюсь LTSP 4.2 - когда встала задача сделать такое же - но с FreeBSD-сервером - просто перенес каталог /opt/ltsp и настроил isc-dhcp, nfs и tftp :)
Год назад стал часть машин переводить на ThinStation - сейчас в сети есть и то и другое :)
PS: Думаю - скоро дойдут руки попробовать повторить Ваш путь! :)
PSS: Больше решений - больше возможностей! :)
cool-bmb, 2009-09-08 в 16:30:07
интересно, а как насчет того что бы в инет-клуб?? что посоветуете ??
Romikus, 2009-09-13 в 21:49:08
Статья хорошая.
Одну проблему только словил, которую можно исправить двумя путями:
1. Добавить в rc.conf в хаки следующую строчку
mkdir -p /var/lib/xkb >/dev/null 2>&1
2. На машине, с которой происходит стягивание клиента по пути /usr/local/share/X11/xkb заменить симлинк compiled на папку с таким же именем.
playnet, 2009-09-14 в 12:09:17
Статья хорошая...
Но загнал бы в ворд сначала чтоли...
Нету слова "понадобяТЬся", как и десятка других. (что сделаТЬ - понадобяТЬся, так чтоли?) Читать противно и за твою школу совестно... не научить таким вещам...
lissyara, 2009-09-14 в 12:19:40
M$ ворд, есть тока у вас, господа виндузятники.
А в тексте не слова смотрите. А смысл. Иначе за деревьями леса не увидите.
Comatoz, 2009-09-25 в 11:36:36
Хороша статья.
Но поддерживать такой зоопарк старого железа и необходимостью иметь админа который сможет в этом разобраться через год всё больше останавливает.
Смотрим в сторону чего-то типа http://ncomputing.com.ua/ или http://www.kingsem.ru/
lissyara, 2009-09-27 в 19:27:43
а в чём собсно проблема разобраться?
в нежелании документировать? вообще-то, это прямая обязанность админа.
========
а по факту - предыдущая версия без меня проработала 3 года. сменилось 3 или 4 админа... никаких проблем.
filier, 2009-10-02 в 21:53:04
подправил пару строк
# стартуем иксы
sleep 3 && /usr/bin/nice -n -20 /usr/local/bin/startx &
на
# стартуем иксы
sleep 3 && /usr/bin/nice -n -20 /usr/local/bin/xinit &
иксы не запускалиь на клиенте
и
# пишем конфиг .xinitrc
echo "exec sleep 5 && /usr/local/bin/setxkbmap \
на
# пишем конфиг .xinitrc
echo "/usr/local/bin/setxkbmap \
разрешение и клава не успевала за rdesktop
В остальном Фсе отлично
ПАСИБО lissyara
Paul_ls, 2009-10-09 в 0:33:15
Респект и уважуха автору!
FOX, 2009-11-25 в 18:39:10
Добрый День Лис!
Нарисуй пожалусто принципиальную схему такого офиса, какой адрес чему отвечает что бы наглядней было а то что то я начал курить не могу чотко понять! Буду признателен если ты нарисуеш схему ip адресов серверов для наглядности!
Avraam, 2010-01-08 в 23:54:56
Лис, СУПЕР! Столько секса...заслуживают хвалы имхо!
receptor, 2010-05-01 в 2:15:16
Молодцом!!!111
Товарищщи!, 2010-05-01 в 2:15:54
Товарищщи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!
adre, 2010-05-28 в 21:25:46
есть еще 4 вариант монтирования влешки /dev/da0a - крайне редко и не понятно как =/
Евгений, 2010-08-23 в 10:53:23
День добрый. Отличная статья интересная идея, но возникла проблемка. Всё работает отлично толь тормозит 1С особенно когда производишь перемещение внутри справочника наменклатуры. Может кто встречался с такой проблемой.
ZooBastik, 2010-11-18 в 15:00:26
При разметке диска на сервере загрузки тонких клиентов заранее выделите отдельный раздел для /shares. Иначе по статье будет собираться в /. Так как обычно / делается мелким, он будет переполнен еще где-то на стадии инсталляции приложений из портов.
Michael Shigorin, 2012-03-06 в 18:17:53
Забросили ссылку сюда — на всякий и вдруг кому пригодится, есть наработки по дистрибутиву, который после установки на хост с двумя эзернетами сразу пригоден к загрузке бездисковых клиентов.
Ссылки:
http://www.altlinux.org/LTSP
http://gvy.livejournal.com/2477.html?thread=142765#t142765
Злобный Деклопер, 2012-06-18 в 15:04:20
нихрена в этом сГаном LTSP не работает как надо
напихали туда кучу всякого гомна, типа "всё в одном"
и перловых инсталяторов, хрен знает как работающих
аля LAMP, пестец, плять, насокращали..
аццкий дебелизм..
Michael Shigorin, 2012-06-18 в 17:21:49
Любезнейший, оторвитесь-ка от своего ведра с помоями и сходите по ссылкам, прежде чем начинать его раскручивать.
Злобный Деклопер, 2012-06-19 в 6:55:45
признаюсь, по ссылкам не ходил, но только что открыл http://www.altlinux.org/LTSP/About и..
"доказывать" ничо не надо..
Ваши собственные "слоганы" говорят сами за себя..
занимайтесь сикасом сами.. с ежами и ужами..
Michael Shigorin, 2012-06-19 в 11:21:49
Так, уже хорошо — а теперь сделайте над собой ещё одно усилие, возьмите исошку и покрутите в руках (на виртуалке или стенде).
По ссылке уточнил специально для профнепригодных и аллергетиков, что никаких ужастей вроде того, что Вы выше понаписывали — там нет: нам с led@ тоже не нравится убунтушный подход "оригинального" LTSP5, поэтому реализован гибрид.
Ну и взрослейте уже наконец: наш математик в 145-ке лет восемнадцать тому говаривал иному стоявшему у исписанной доски: "железная логика, а теперь докажите". Учитесь аргументировать.
Или мне обязательно надо пригласить сюда кого-нить из матёрых BSD-шников вроде Нечаева или Чеусова, чтоб Вам доступно объяснили отличие между дискуссией и истерикой?
Злобный Деклопер, 2012-06-19 в 12:41:17
Да не люблю я дискутировать на тему "какой дистрибутив лучше"..
===
зы. вот "что-то мне подсказывает", чтоб заработал Ваш мод LTSP "искаропке", придется мне сносить свой центос к ипиням и ставить каропку (altlinux)..
и так оно во всём..
вот нах выкосили хен из 5-го центоса..?
достало велосипедостроение (ламп, лтсп,..)
апач, тфтп, нфс ты изобрёл?
ну ты напили мануал, как всем этим пользоваться (для не умеющих читать оригинальные маны)
что, собсно, и сделано автором статьи.
Michael Shigorin, 2012-06-19 в 13:39:56
Ну так и не дискутируйте — выбирайте или создавайте инструмент под задачу, если он будет реюзабельный и полезный другим — вообще замечательно.
Этот вариант действительно заточен под альт, хотя мы предприняли заметные усилия по upstream merge и допилить его под другие поддерживаемые LTSP5 дистрибутивы должно быть относительно просто. Впрочем, не вижу, чем бы центос как десктоп был лучше альта — а терминальный сервер в первую очередь является десктопом. Ну и для него не отменяли LTSP4.2 без всех этих X11-в-ssh и ldm.
Не знаю, чем имено Вас так зацепил несчастный LAMP — это всего лишь полумаркетинговое название минимум трёх расхожих стеков технологий для реализации веб-сервера. К LTSP оно отношения скорее не имеет: в аббревиатурах общая аж первая буковка ("L"inux).
Мануалов я перевёл и написал с 1998, поверьте или проверьте, достаточно. Для некоторых задач лучше оказалось сделать и выложить дистрибутив — например, школьные учителя за адаптированный вариант благодарили, при этом морочиться с простынями описаний многим попросту некогда — надо ж детей учить, домашние проверять...
kozlov_ao, 2013-01-03 в 20:15:10
Пока не добавил -alldirs:
/shares/tftp -alldirs -maproot=root -network 172.50.0.0 -mask 255.255.0.0
машина грузиться не хотела....
uname -a
FreeBSD ThinkSRV 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:15:25 UTC 2012 root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
adre, 2013-05-30 в 17:26:30
уже три года прошло =)
glukDeLuxe, 2014-09-26 в 13:18:52
router$ more /root/scripts/sync.sh
#!/bin/sh
echo $? > /tmp/sync.pid
Видимо имелось ввиду
echo $$ > /tmp/sync.pid
Мфынф, 2021-03-24 в 0:35:02
АЛЕКС КЕДА ЛОХЪ
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [32 шт.]