DataLife Engine > Настройка > Автоматическое развертывание систем с FreeBSD и PC-BSD

Автоматическое развертывание систем с FreeBSD и PC-BSD


20-11-2012. Разместил: synergix Рабочий день сисадмина Sai начинался вполне буднично. Надев любимый свитер с демоненком и заварив чашку свежего ароматного кофе, он по многолетней привычке начал день с изучения логов на серверах. Сервера привычно гудели кулерами и рапортовали об отменном здоровье и отсутствии происшествий. Идиллию прервал звонок от шефа, сообщившего о поставке трех новых серверов и 20 компьютеров, на которые незамедлительно требовалось установить правильную ОС. Поскольку перспектива многочасовой установки на такое количество компьютеров сисадмина не вдохновляла, было решено использовать PXE, о чем собственно и поведает наша статья.

В PC-BSD 9.x, установка системы проходит по сценарию, заданному установщиком pc-sysinstall, что дает нам возможность автоматизировать развертывание серверов на FreeBSD и десктопов на PC-BSD используя загрузку по PXE.

В PC-BSD и FreeBSD 9.1 и выше, данная функциональность легко реализуется с использованием утилиты pc-thinclient. Загрузка по PXE позволяет вам загрузить систему, используя сетевой интерфейс как альтернативу традиционным способам, таким как DVD и USB. Для загрузки по PXE необходимо чтобы использовался PXE-совместимый сетевой адаптер.

Начальная настройка PXE

Для начала, у вас должна быть система под PC-BSD или FreeBSD 9.1 с двумя сетевыми адаптерами и все дерево портов в /usr/ports. Если не вы ставили коллекцию портов, то можете скачать ее, используя команду

portsnap fetch extract update 

от имени суперпользователя root.
После, запустите терминал от root'a и введите команду pc-thinclient:

#pc-thinclient
/usr/local/bin/pc-thinclient will install the components to convert this system in thin-client server.
Continue? (Y/N)

Ничтоже сумняшеся, жмем Y и видим следующее окошко:

Do tou wish to make this a remote X desktop server or install server?
(r/i)

Тут уже нам предлагают выбрать роль сервера, поскольку нам необходим сервер, с которого мы будет разворачивать системы по PXE, то наш выбор install server и смело жмем "i". Опция remote X desktop означает по сути терминальный сервер в данной статье не рассматривается.
Получив указание, утилита pc-thinclient бодро начнет установку порта net/isc-dhcp42-server.
Нам вполне подойдут установки по умолчанию, потому и соглашаемся со всеми опциями в процессе установки. После завершения, утилита запросит нас о выборе используемого PXE сетевого интерфейса:

Setting up system for PXE booting...
What NIC do you wish DHCPD to listen on? (I.E. re0)
(nic) 


Укажите требуемое имя вашей сетевой карточки с поддержкой PXE, после чего запустится DHCP-сервер (при этом следует учесть, что в сети не должно быть других DHCP-серверов) и радостно оповестит о завершении установки, выведя соответствующее сообщение:

To perfom system installations, place your custom pc-sysinstall scripts in:
/usr/home/thinclient/installscripts

An example scripts is provided in the above directory

For unattended installations, save your pc-sysinstall scripts as:
/usr/home/thinclient/installscripts/unattended.cfg

Your system is now setup to do PXE booting!


Из которого следует, что для выбора различных типов установки системы соответствующие скрипты нужно поместить в /usr/home/thinclient/installscripts, а для "тихой" установки скрипты помещаются в /usr/home/thinclient/installscripts/ в виде unattended.cfg

Теперь следует загрузить компьютер-клиент с поддержкой PXE, и в случае успешной загрузки по сети вы увидите следующее окно:

Автоматическое развертывание систем с FreeBSD и PC-BSD

Выбрав пункт "install" вам будет дана возможность установить базовую систему FreeBSD на примере тестового скрипта (ниже мы рассмотрим как использовать свои собственные скрипты). После выбора вам будет предложено подтвердить еще раз что вы хотите произвести установку с использованием данной конфигурации и начнется собственно установка. Кроме того, вам также будет доступен "emergency shell", то есть консоль восстановления, что бывает очень полезным в случае проблем с загрузкой системы либо для проведения операций с файловой системой.

Настройка скриптов установки.

Конечно, после настройки сервера PXE вам захочется создать свои собственные сценарии установки.
Утилита pc-thinclient любезно предоставляет примеры установочных скриптов в папке /usr/home/thinclient/installscripts/ в которую и следует размещать свои скрипты. Все скрипты, размещенные в этой директории будут доступы в виде опций при загрузке клиента по PXE.
Зная место расположение скриптов, давайте ознакомимся с конфигом, используя pc-sysinstall.example в качестве примера:

#Sample configuration file for an installation using 
pc-sysinstall
installMode=fresh
installInteractive=no
hostname=examplesystem
# Set the disk parameters
disk0=ada0
partition=all
bootManager=none
commitDiskPart
# Setup the disk label
# All sizes are expressed in MB
# Avail FS Types, UFS, UFS+S, UFS+J, ZFS, SWAP
# Size 0 means use the rest of the slice size
disk0-part=UFS+SUJ 1000 /
disk0-part=SWAP 2000 none
disk0-part=UFS+SUJ 0 /usr
commitDiskLabel
# Set if we are installing via optical, USB, or FTP
installType=FreeBSD
installMedium=local
localPath=/installarchive
packageType=tar
installFile=fbsd-release.txz
# Set the root pass
rootPass=root
# Setup our users
# Setup our users
userName=kris
userComment=Kris Moore
userPass=kris
userShell=/bin/csh
userHome=/home/kris
userGroups=wheel,operator
commitUser


Большинство параметров в комментировании не нуждаются, но хотелось бы пояснить такие параметры как installMedium=local и localPath=/installarchive. Так как pc-sysinstall поддерживает ряд методов извлечения архивов для установки, мы можем использовать fbsd-release.txz в папке /usr/home/thinclient/installarchive для установки. Этот каталог для клиентов PXE будет выглядеть как /installarchive, позволяя вам использовать собственные архивы конфигураций FreeBSD/PC-BSD для ваших нужд.

Совет!
Если вы используете утилиту Warden (представляющая собой графический интерфейс для механизма виртуализации FreeBSD Jail), то можете использовать jail для настройки конфигурации на хост-машине. После того, как вы будете довольны результатом, нужно остановить jail и создать архив с помощью команды

# tar cvJf /usr/home/thinclient/installarchive/myarchive.txz -C /usr/jails/<jailip>



После того, как вы определились с типом развертываемой системы, наверняка вы захотите разметить файловую систему. В примере приводится очень простая разметка, из которой следует, что используется диск ada0, он весь отводится под систему, включено Soft-Updates и журналирование, тип ФС - UFS, под /root отведен 1Gb, под swap 2 Gb, остальное отдано под /usr.

pc-sysinstall также способен работать и с файловой системой ZFS по аналогичному сценарию:

#Setup the disk label
# All sizes are expressed in MB
# Avail FS Types, UFS, UFS+S, UFS+J, ZFS, SWAP
# Size 0 means use the rest of the slice size
disk0-part=ZFS 0 /,/usr,/var,/root (mirror: ada1)
commitDiskLabel

Совет!
Поскольку каждая установка производится по единому сценарию, неплохим способом будет экспериментирование с различными способами разметками ZFS, используя виртуализацию VirtualBox и PC-BSD. Произведя установку с DVD на виртуальную машину и пользуясь графическим интерфейсом, настройте разметку как вам необходимо и после завершения установки конфиг pc-sysinstall будет доступен в /root/pc-sysinstall.cfg


Хотя этот пример достаточно упрощенный, могут быть созданы гораздо более сложные виды разметки с использованием ZFS, в том числе raidz, наборы данных и многое другое.

Ну и напоследок рассмотрим использование с помощью pc-thinclient так называемой "тихой" установки, которая делает процесс полностью автоматизированным, то есть без участия пользователя. Для этого достаточно разместить сценарий настройки в виде файла unattended.cfg в каталоге /usr/home/thinclient/installscripts/. При первой загрузке PXE клиента будет произведена проверка на наличие файла unattended.cfg и в случае его наличия, он будет использован для установки системы. Данный способ следует использовать с осторожностью, так как в случае уже установленной системы и загрузки системы через PXE будет произведена полная переустановка. Рекомендуется использовать его для массовой установки.

Вот так вкратце мы рассмотрели способ развертывания система PC-BSD и FreeBSD через PXE. Если вам стала интересна данная тема и вы хотели бы получить более глубокие познания в данной области, обратите внимание на wiki-ссылки на pcbsd.org, такие как

http://wiki.pcbsd.org/index.php/Thin_Client
http://wiki.pcbsd.org/index.php/Creating_an_Automated_Installation_with_pc-sysinstall

а также на список рассылки и форум:

http://lists.pcbsd.org
http://forums.pcbsd.org/

KRIS MOORE

Перевел и адаптировал synergix.
При копирование материала индексируемая гиперссылка обязательна.
Вернуться назад