четверг, 13 января 2011 г.

Ubuntu - TFTP & LTSP

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

Насмотревшись на тонкие клиенты, я решил их опробовать. Для реализации понадобится отдельно взятая машинка, мощность которой выбирать вам, исходя из количества клиентов. Я же взял что было. Intel 2.6 Ггц 512 оперативки и жесткий на 80 Гб. Дальше по порядку.

  Установка LTSP
Тут все просто. Берем alternate релиз старше 8.04 и в параметрах установки (клавиша F6) выбираем собственно его, LTSP. Во время установки будет создан клиент, процедура занимает порядочно времени и по итогу не работает. Так же, по умолчанию, будет установлен DHCP сервер, его я не трогал и оставил как есть. После установки сносим директорию /opt/ltsp/i386 и выполняем

$ sudo ltsp-build-client --arch i386
Снова та же длительная процедура создания клиента, но на этот раз все работает. Выставляем на клиентской машине в параметрах BIOS'а LanBOOT [Enable] и в приоритетах загрузки первым ставим Lan. Клиент должен загрузится. С LTSP все.

  TFTP - настройка
Для установки по сети кроме TFTP нам понадобится Apache2. Установим:

$ sudo apt-get install apache2
Так же, для загрузки Live системы, потребуется nfs сервер:

$ sudo apt-get install nfs-kernel-server
Apache трогать не будем. Дефолтный конфиг вполне юзабилитен. А вот nfs поправить нужно будет, но об этом чуть позже. Создадим папку setup в каталоге /var/lib/tftpd/ltsp/i386. И скопируем туда содержимое alternate релиза

$ sudo mkdir /var/lib/tftpd/ltsp/i386/setup
$ sudo cp -ra /media/cdrom/* /var/lib/tftpd/ltsp/i386/setup/

Создадим папку live в том же каталоге и скопируем содержимое desktop релиза. Не забываем про скрытую папку .disk в корне диска.
Правим конфиги

$ sudo nano /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Дефолтные строки конфига оставляем и приводим его к следующему виду:

DEFAULT localboot #выбор по умолчанию
TIMEOUT 100 #таймаут в мили секундах
PROMPT 1
DISPLAY display.msg #файл приветствия

LABEL ltsp #оставляем как было
kernel vmlinuz
append ro initrd=initrd.img quiet splash nbdport=2000

LABEL install #Метка на установку
kernel setup/install/netboot/ubuntu-installer/i386/linux
append vga=normal initrd=setup/install/netboot/ubuntu-installer/i386/initrd.gz --

LABEL live #Метка на загрузку "живой" системы
kernel live/casper/vmlinuz
append vga=normal initrd=live/casper/initrd.lz boot=casper netboot=nfs fsroot=192.168.0.хх:/var/lib/tftpboot/ltsp/i386/live --

LABEL localboot #Метка на загрузку с hdd0
LOCALBOOT 0
#Не забываем под меткой live изменить IP адрес на адрес сервера.

Название меток можно менять как угодно, кроме ltsp. Изменив ее терминальный клиент грузится не захотел. Обязательно скопируйте свой конфиг в эту же директорию под другим именем. При пересборки клиентов ltsp этот конфиг становится дефолтным.
Создадим файл приветствия display.msg в папке i386. Суть файла в том, что бы указать какие команды можно передать нашему серверу. Команды это метки указанные в /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default для примера:

ltsp : Загрузка LTSP клиента
live : Загрузка "Живой системы"
install : Установка


Пришло время поправить конфиг nfs сервера.
В файле /etc/default/nfs-kernel-server находим и изменяем следующую строчку:

NEED_SVCGSSD=no
А в файле /etc/default/nfs-common следующие:

NEED_IDMAPD=yes
NEED_GSSD=no

Осталось указать nfs серверу на директорию которую он будет отдавать клиентам. Удаляем папку /etc/exports со всем содержимым(в ней пример конфига) и создадим конфиг:

$ sudo rm -r /etc/exports
$ sudo nano /etc/exports

В который пропишем строчку:

/var/lib/tftpboot/ltsp/i386/live 192.168.0.0/24(rw,nohide,no_subtree_check)
Перезагрузим nfs

$ sudo /etc/init.d/nfs-kernel-server restart

Можно пробовать.

На этом пока все. Статья находится в разработке и будет дополнена.

Комментариев нет: