Автоматизированная установка FreeBSD с помощью PC-SYSINSTALL

PC-SYSINSTALL
Несколько месяцев назад PC-SYSINSTALL (инсталлятор для PC-BSD 8.0 и выше) был добавлен во FreeBSD CURRENT в рамках процесса подготовки релиза FreeBSD 9.0.

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

Запуск PC-SYSINSTALL сравнительно прост. После запуска последнего снапшота FreeBSD / PC-BSD 9-CURRENT, его можно найти в /usr/share/pc-sysinstall, также работает команда pcsysinstall в командной строке. Старт установки выполняется с помощью такого синтаксиса:

# pc-sysinstall -c

Как только команда запущена, инсталлятор читает указанный конфигурационный файл, размечает диски и начинает установку. Посмотрим более пристально на сам конфигурационный файл (Listing 1).

Listing 1. Example of a complete PC-SYSINSTALL configuration file


#Example pc-sysinstall configuration

installInteractive=no
installMode=fresh
installType=FreeBSD
packageType=tar
installMedium=dvd

# Timezone
timeZone=America/New_York
enableNTP=yes

# Keyboard Layout Options
localizeKeyModel=pc104
localizeKeyLayout=us

# Disk Setup for ad0
disk0=ad0
partition=ALL
bootManager=none
partscheme=MBR
commitDiskPart

# Partition Setup for ad0(ALL)
# All sizes are expressed in MB
# Avail FS Types, UFS, UFS+S, UFS+J, UFS+SUJ, ZFS, SWAP
# UFS.eli, UFS+S.eli, UFS+J.eli, UFS+SUJ.eli, ZFS.eli, SWAP.eli
disk0-part=UFS 1000 /boot
disk0-part=SWAP 2000 none
disk0-part=UFS+SUJ 2000 /
disk0-part=UFS+SUJ.eli 15000 /usr
encpass=mypass
commitDiskLabel

# Root Password
rootPass=mypass

# Users
userName=kris
userComment=Kris Moore
userPass=mypass
userShell=/bin/csh
userHome=/home/kris
userGroups=wheel,operator
autoLoginUser=kris
commitUser

Мы видим типичный список параметров, с помощью которого можно установить однодисковую систему FreeBSD. В первом блоке определяется несколько опций, задающих тип установки, а также источники файлов. В этом примере мы использовали новую установку из тар-архива, расположенного на DVD. Обычно эти параметры изменяются не часто, конечно в предположении, что вы используете тот же носитель-источник. Далее несколько пользовательских блоков, которые задают временную зону и раскладку клавиатуры, например. Затем - конфигурация дисков. Это место уже изменяется довольно часто от системы к системе. В примере мы сначала определяем, какой диск будет использоваться (ad0), на этом диске будет определён единственный слайс (ad0s1), а менеджер загрузки установлен не будет. Параметр partscheme= setting определяет, какой тип загрузки будет использован (MBR/GPT), в данном случае выбран MBR, кроме того будут нарезаны ad0p1, ad0p2 и так далее. После конфигурации всего диска следует информация о разделах в слайсе. В данном примере мы создали четыре партиции:

• 1000MB партиция отформатированная как UFS, будет монтироваться в /boot;
• 2000MB SWAP-партиция;
• 2000MB партиция для корневой файловой системы, отформатированная как UFS с журналированием типа Soft Updates,
монтируется соответственно в /;
• 15000MB партиция UFS с журналированием типа Soft
Updates, шифрованием GELI, парольная фраза mypass, монтируется в /usr.

В системах со множеством дисков инструкции commitDiskPart и commitDiskLabel могут быть повторены несколько раз с изменениями типа disk0›disk1›disk2 и так далее, каждый со своей собственной конфигурацией разделов.

Пользовательские опции говорят сами за себя. В примере мы зададим пароль root значением mypass и добавим единственного пользователя kris с соответствующими опциями. Так же как и в дисковой конфигурации блоки commitUser можно добавить столько раз, сколько нужно, поэтому множество пользователей могут быть заданы с помощью одного конфига.

Это необходимая и достаточная информация для работы конфигурационного скрипта. Сохраним файл в какой-либо определенной локации на диске. С этого момента может быть запущена команда pc-sysinstall -c . Никакой дальнейшей активности пользователя не требуется.

В качестве вкусностей: кроме журналирования, шифрования и прочего PC-SYSINSTALL поддерживает и файловую систему ZFS. Применение конфигурации ZFS к диску требует сравнительно отличающего синтаксиса для описания отличающейся реализации ФС. Пример конфигурации дан в Listing 2.

Listing 2. Disk configuration using ZFS


# Disk Setup for ad0
partition=ALL
bootManager=none
partscheme=MBR
commitDiskPart
# Partition Setup for ad0(ALL)
# All sizes are expressed in MB
# Avail FS Types, UFS, UFS+S, UFS+J, UFS+SUJ, ZFS, SWAP
# UFS.eli, UFS+S.eli, UFS+J.eli, UFS+SUJ.eli, ZFS.eli, SWAP.eli
disk0-part=ZFS 0 /,/usr,/var,/data (mirror: ad1)
commitDiskLabel

В примере выше инициация диска подобна предыдущей, но информация о партициях отличается. Для указанного дисковода инструкция disk0-part= создаст единственный zpool, автоматически поименованный tank0, который займет все свободное место (флаг 0) и будут созданы точки монтирования /, /usr, /var, /data. Кроме того можно задать флаг mirror: ad1, который вставит диск ad1 в zpool с использованием режима зеркалирования. Тут могут быть использованы опции для raidz и другие подобные.

И вновь, имея эту конфигурацию, PCSYSINSTALL всё сделает без участия пользователя.

После того, как некоторый набор конфигураций сложится в набор конфигурационных файлов для PCSYSINSTALL, тиражирование этих систем станет весьма несложным процессом. Для написания конфигурации сверяйтесь с примерами, которые есть в /usr/share/pc-sysinstall/examples/ или же используйте графический инсталлятор PCBSD, с помощью которого можно сгенерировать конфигурацию автоматически, после инсталляции она сохраняется в /tmp/sys-install.cfg.

Дополнительное чтение:
Создание автоматизированных инсталляций с помощью PC-SYSINSTALL:
http://wiki.pcbsd.org/index.php/Creating_an_Automated_Installation_with_... .
Примеры и Ридми из SVN: http://svnweb.freebsd.org/base/head/usr.sbin/pc-sysinstall/examples/ .
Рассылка разработчиков PC-BSD: http://lists.pcbsd.org/mailman/listinfo/dev .

KRIS MOORE
Kris Moore is the founder and lead developer of PC-BSD. He
lives with his wife and four children in East Tennessee (USA),
and enjoys building custom PC’s and gaming in his (limited)
spare time. kris@pcbsd.org



Назад в тематический каталог
Назад на страницу переводов из Linux Journal