Home

воскресенье, 21 февраля 2010 г.

Сетевая загрузка Mac OS X, часть III

Часть третья. Сервер, не суетись под клиентом

В предыдущей части цикла мы уже создали образ для сетевой инсталляции Mac OS X, так что настало время приступать к поэтапной конфигурации NetBoot сервера и всех его сервисов. А начнем мы с TFTP сервиса.
tftp.jpg
Собственно Trivial FTP настолько прост в конфигурации, что даже противно. Но начинать именно с него полезно в том смысле, что мы затронем аспекты работы с утилитой launchctl, которая служит для управления сервисами Mac OS X.

По умолчанию tftp демон макоси держит файлы для раздачи в каталоге /private/tftpboot
Создадим там каталог для сетевых образов и слинкуем туда каталог с образами загрузок
mkdir /private/tftpboot/NetBoot
ln -s /Library/NetBoot/NetBootSP0 /private/tftpboot/NetBoot/
Для того, чтобы симлинки заработали, необходимо слегка подредактировать конфигурацию демона. Вызываем редактор
nano /System/Library/LaunchDaemons/tftp.plist
И в 12-й строке меняем параметр -s на -i Более полное описание можно прочесть на сайте Apple Support
Клиент будет забирать файл конфигурации по протоколу tftp и по пути
/private/tftpboot/NetBoot/NetBootSP0/XInstall.nbi/NBImageInfo.plist
Осталось только включить сервер tftpd, в стандартную поставку десктопной версии он входит, но выключен по умолчанию. Тут на помощь нам приходит утилита launchctl. Конфигурация демона tftp хранится в файле /System/Library/LaunchDaemons/tftp.plist
Пробуем стартовать демон
bash-3.2# launchctl load /System/Library/LaunchDaemons/tftp.plist
nothing found to load
bash-3.2#
Как видно, нас культурно послали, дескать nothing found to load Это произошло потому, что файле конфигурации установлен ключ деактивации демона
<key>Disabled</key>
<true/>

Если мы хотим принудительно загрузить деактивированный сервис одноразово, необходимо использовать ключ -F (force)
launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Для остановки достаточно скомандовать сервису unload
launchctl unload /System/Library/LaunchDaemons/tftp.plist
Если мы хотим включить сервис на постоянной основе и сделать его загружаемым при старте системы, следует использовать ключ -w
launchctl load -w /System/Library/LaunchDaemons/tftp.plist
Соответственно, для выключения автозагрузки будем использовать команду unload с ключем -w
launchctl unload -w /System/Library/LaunchDaemons/tftp.plist
Если мы заглянем в список процессов по команде ps ax или в мониторе активности, то не заметим запущенного tftpd. Это нормально, т.к. многие сетевые сервисы в unix системах запускаются по необходимости при обращении клиента. В паузах между обработкой запросов они остановлены.
Так что проверим здоровье свеженастроенного tftpd при помощи клиента tftp, который тоже входит в поставку системы. Вызовем tftp, включим расширенный вывод диагностики и трассировку пакетов и попытаемся скачать файл конфигурации. Не забудьте подставьте свой ip адрес.

Открываем новое окно или вкладку терминала и от имени себя любимого проверяем:
tftp 172.16.101.13
tftp> verbose
Verbose mode on.
tftp> trace
Packet tracing on.
tftp> get /private/tftpboot/NetBoot/NetBootSP0/XInstall.nbi/NBImageInfo.plist
getting from 172.16.101.13:/private/tftpboot/NetBoot/NetBootSP0/XInstall.nbi/NBImageInfo.plist to NBImageInfo.plist [netascii]
sent RRQ <file=/private/tftpboot/NetBoot/NetBootSP0/XInstall.nbi/NBImageInfo.plist, mode=netascii>
received DATA <block=1, 512 bytes>
sent ACK <block=1>
received DATA <block=2, 134 bytes>
Received 646 bytes in 0.0 seconds [inf bits/sec]
tftp> quit
rm NBImageInfo.plist
Файлик получили, TFTP работает.
Ой

0 коммент.:

Отправить комментарий