Пакеты и файлы для бездисковых систем


От операционной системы без дополнительного программного обеспечения мало проку. Рано или поздно вам придется устанавливать пакеты на бездисковые системы. Кроме того, придется устанавливать на бездисковые системы и конфигурационные файлы.

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

Суть установки программного обеспечения для бездисковых клиентов заключается в том, что установка должна выполняться в каталог, который бездисковые клиенты будут использовать в качестве своей файловой системы. Установить пакеты в нестандартный каталог можно с помощью функции chroot утилиты pkg_add(8). Прежде чем начать установку, файлы программного обеспечения нужно скопировать в каталог бездискового клиента.

# ср /usr/ports/packages/All/jdk-1.5.0.11p5,1.tbz /var/diskless/1
# pkg_add -С /var/diskless/1 /jdk-1.5.0.11p5,1.tbz

He забывайте, что функция chroot изменяет корневой каталог процесса. Прежде чем утилита pkg_add(8) выполнит хоть одно действие, она сделает каталог /var/diskless/1 своим корневым каталогом. После этого, с точки зрения pkg_add(8), пакет будет находиться в корневом каталоге.

Кроме того, на бездисковых клиентах можно использовать и «порты», но организовать это немного сложнее. Если вам требуется какой-то «порт», рекомендую сначала собрать из него пакет, а затем установить этот пакет командой pkg_add -С для функции chroot.

Конфигурационные файлы бездисковых систем

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

/etc/rc.conf

Каждому хосту необходим файл rc.conf с базовыми настройками. Имя хоста и IP-адрес уже установлены с помощью DHCP, но еще нужно, как минимум, создать доступные для записи файловые системы /var и /tmp.

/etc/fstab

Каждой системе FreeBSD требуется таблица файловых систем. В конце концов, даже на бездисковых машинах имеются файловые системы! Вот пример содержимого файла /etc/fstab для нашего случая бездисковой машины:

Если вы предусматриваете другие разделы (например, для домашних каталогов), их также нужно указать здесь. Можно также предусмотреть использование локальных жестких дисков для пространства свопинга и временного каталога. Однако если вы используете локальный диск на общедоступной машине, рекомендую на каждой загрузке создавать эти разделы заново с помощью newfs(8), чтобы данные, оставшиеся от предыдущего пользователя, не создали угрозу для следующего.

Ключи SSH

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

Оставшись без собственных устройств, FreeBSD автоматически создает новые ключи SSH во время загрузки. Так как эти ключи записываются в файловую систему, находящуюся в памяти, они теряются при каждом завершении работы. Не забывайте, что клиентское программное обеспечение SSH кэширует ключи для всех удаленных хостов, к которым выполняется подключение, и отвергает соединение, если ключ изменился. Если ключи SSH на ваших бездисковых хостах будут постоянно изменяться, это быстро выведет вас из равновесия. Избежать этого достаточно просто, достаточно лишь зайти в каталог конфигурации для каждого клиента на стороне сервера и создать там ключи:

# cd /var/diskless/1/conf/192.168.1.99/etc
# mkdirs ssh
# cd ssh
# touch ssh_host_key
# ssh-keygen -t dsa -f ssh_host_dsa_key -N ''
# ssh-keygen -t rsa -f ssh_host_rsa_key -N ''

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

Так как постоянная файловая система доступна только для чтения, на бездисковой станции даже root не сможет причинить сколько-нибудь серьезный ущерб. Учитывая это, вы могли бы решить предоставить сервис SSH всем бездисковым станциям под учетной записью root, чтобы не создавать пароли для каждого администратора. Скопируйте /etc/ssh/shhd_config в каталог /conf’/default/etc/ssh и установите параметр PermitRootLogin в значение yes, чтобы разрешить это. (Реализация подобного решения на сервере с его файловой системой, доступной для чтения/записи, несет жуткую угрозу безопасности, но бездисковая система — это редкое исключение из правил.)

Файлы паролей

На бездисковой системе вам наверняка потребуется файл паролей. В системе FreeBSD нет достаточно удобного способа создания файлов паролей, независимых от основной системы. Лучше всего создать файл паролей на тестовой машине или в клетке, а затем скопировать четыре ключевых файла паролей (master.passwd, passwd, pwd.db и spwd.db) из каталога /etc в соответствующий каталог conf. (Для создания и установки файлов базы данных можно использовать утилиту pwd_mkdb(8) с ключом -d, но вам по-прежнему придется вручную выполнить тяжелую работу по созданию подходящего файла паролей.) Также можно самому запереться в chroot-окружении в корневом каталоге бездисковой станции на сервере и запустить команду adduser(8) оттуда.

syslogd.conf

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

Бездисковая установка

Одна из неприятностей наших дней, — небольшие серверы, которые не всегда поставляются в комплекте с приводами для компакт-дисков. И хотя для нормальной работы машине не нужен CD-ROM, его отсутствие усложняет установку системы. Загрузка такого сервера как бездисковой станции ликвидирует эту проблему. NFS может экспортировать образ установочного компакт-диска FreeBSD, что позволяет выполнить загрузку с образом компакт-диска в качестве корневого каталога. Вы загрузитесь прямо в sysinstall!

Комментарии запрещены.