Раньше мы описали инфраструктуру для развертывания RHEL в условиях масштабной инфраструктуры. И хотя наша инфраструктура позволяла устанавливать RHEL сразу на произвольном количестве компьютеров, ей чего-то не хватало. Не хватало возможности неинтерактивной инсталляции.
Такая технология давно существует в стенах Red Hat и имя ей KickStart. Сегодня мы рассмотрим эту технологию и ее применений на примере сетевой инсталляции RHEL5. Операционная система сервера в примере – RHEL4, но может быть произвольной.
Итак, создаем kickstart-файл.
Что такое kickstart-файл? Kickstart-файл – это сценарий установки. «У меня все ходы записаны». То есть сценарий установки подразумевает заранее записанные в определенном формате ответы на вопросы инсталлятора. Добавьте возможность выполнять собственные скрипты до и после установки и вы получите более-менее полное представление о возможностях kickstart. Приведем простой пример ks-файла
- install
- url --url ftp://192.168.0.2/redhat/disk1
- key [installation number]
- lang en_US.UTF-8
- keyboard us
- xconfig --startxonboot --defaultdesktop kde --resolution 1400x1050 --depth 32
- network --device eth0 --bootproto dhcp --onboot=on
- rootpw --iscrypted $1$vFt/3HTE$N16kauXMVOmNHurppHAo0/
- firewall --disabled
- authconfig --useshadow --enablemd5
- selinux --disabled
- timezone --utc Europe/Moscow
- bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
- #
- clearpart --all --initlabel
- part /boot --fstype ext3 --size=100 --asprimary
- part pv.100001 --size=20000 --asprimary
- part pv.100000 --size=20000 --asprimary
- part pv.100002 --size=1 --grow --asprimary
- volgroup sysvg --pesize=32768 pv.100000 pv.100001 pv.100002
- logvol swap --fstype swap --name=swap --vgname=sysvg --size=2000
- logvol /home --fstype ext3 --name=home --vgname=sysvg --size=1 --grow
- logvol / --fstype ext3 --name=root --vgname=sysvg –size=20000
- firstboot --disable
- reboot
- #
- %packages
- @admin-tools
- @base
- @core
- @system-tools
- @text-internet
- @web-server
- #
- %post
- #!/bin/bash
- useradd -m -s /bin/bash -G wheel vpupkin
А теперь разберем его. Для удобства строки пронумерованы и я буду просто ссылаться на номера. В строчках [1-3] мы определяем, что это будет чистая инсталляция (не обновление) , местоположение дистрибутива (если быть точным – первого диска дистрибутива) и задаем инсталляционный номер.
Далее [4-5] мы указываем язык системы и тип клавиатуры. Нотация стандартная, то есть чтобы установить русский язык системы надо исправить en_US.UTF-8 на ru_RU.UTF-8.
В [6] мы конфигурируем X.org сервер, задавая рабочий стол по умолчанию (KDE), разрешение и глубину цвета, а также определяем, что X.org должен стартовать при загрузке.
В [7] находится простая сетевая конфигурация, определяющая, что у нас единственная сетевая карта, которая использует DHCP для получения сетевых настроек. Это рекомендованный вариант, так как в случае, если вы устанавливаете много систем с одного kickstart-файла, вы не можете использовать одни и те же сетевые настройки. Кроме того, DHCP-сервер в любом случае является необходимым для сетевой инсталляции.
В [8] мы устанавливаем административный пароль (он заранее зашифрован).
В [9] и [11] мы отключаем брандмауэр и мандатный контроль доступа соответственно (не будем забывать, что мы рассматриваем простой пример).
В [10] мы конфигурируем стандартную аутентификацию через /etc/passwd и /etc/shadow с шифрованными паролями. В этой строке возможно заранее сконфигурировать аутентификацию с использованием Kerberos, LDAP, NIS, или Windows-домена.
В [12] мы задаем временную зону, а в [13] задаем положение загрузчика, опции передаваемые ядру и, если у вас более одного жесткого диска – порядок следования их в BIOS системы.
Строки [13-21] задают разметку диска. В нашем случае создается одна 100Мб ext3-партиция /boot для ядра, initrd и загрузчика, остальное место размечается на 3 партиции, поверх которых располагается LVM, на котором выделяется 20Гб том под основную систему (/), 2Гб под место для подкачки, а остальное место монтируется как /home для данных пользователей.
Строки [24-25] отключают агент настройки системы при первой загрузке и указывают, что системы должна перезагрузиться после установки.
Строки [27-31], как это видно, находятся в области %packages, и определяют пакеты и группы пакетов, которые должны быть установлены. Синтаксис простой: имя пакета, чтобы установить один пакет (например dhcp) и @имя_группы, чтобы установить определенную группу пакетов.
Оставшиеся строки (секция %post) – постинсталляционный скрипт. В нашем случае он просто добавляет пользователя vpupkin. Вообще говоря, это может быть произвольный скрипт, который обновляет систему, скачивает и устанавливает конфигурацию или выполняет прочие произвольные действия.
Использование ks-файла
Теперь наш kickstart-файл готов к использованию. Осталось разместить его на сервере и передавать параметром при установке. Я предполагаю, что у вас сетевые службы настроены в соответствии с описанием в предыдущем выпуске рассылки.
Сохраните ваш kickstart-файл куда-нибудь на сервер. Я разместил его в /var/ftp/rhel-ks.cfg и, соответственно, он стал доступен по сети по адресу ftp://192.168.0.2/rhel-ks.cfg. Осталось «сообщить» об этом примечательном факте загружающимся по PXE системам. Для этого изменим файл '/tftpboot/prelinux.cfg/default' так, чтобы он содержал следующую информацию:
label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=9216 noapic acpi=offo ks=ftp://192.168.0.2/ks.cfg
На этом конфигурация заканчивается. Если вам необходимо установить 1000 типовых рабочих станций за день – это не более трудная задача, чем нажать кнопку «Power» на 1000 компьютерах.
Удобности и вкусности.
Естественно, механизм kickstart чрезвычайно удобен для проведения типовых инсталляций. Однако писать сценарий установки не всегда удобно вручную. Для этого существует инструмент system-config-kickstart (входит в поставку RHEL), который в окошке, похожем на этапы инсталляции позволит сформировать костяк конфигурационного файла. Фактически ручного редактирования требует только секция разметки диска и постинсталляционные действия.
Инструментарий kickstart очень удобно интегрирован в RHN. Вы можете сгенерировать сценарий по установленной ранее системе, а также пользоваться каналами конфигурации для приведения типовых систем в боевую готовность непосредственно от состояния «голое железо» (Bare HW).
Полную информацию о синтаксисе kickstart-файлов вы можете почерпнуть по адресу
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Installation...
Комментариев нет:
Отправить комментарий