пятница, 13 марта 2009 г.

Cobbler/Koan средство установки RPM-Based OS

В начале этого года компания RedHat в лице Michael DeHaan'a представила ПО Cobbler способное упростить сетевую установку операционных систем, что особенно необходимо при масштабных инсталляциях, например, в дата-центрах. Буквально через пару недель ПО Cobbler интегрировали в Open Source проект Spacewalk и предполагается, что в недалеком будующем Cobbler заменит соответствующую подсистему в Spacewalk, а в дальнейшем, видимо, и в Red Hat Network Satellite Server.


На сегодняшний день о технических особеностях Cobbler/Koan и Spacewalk достаточно написано. Про Spacewalk вы можете прочитать здесь, про Cobbler/Koan здесь.

Итак мы не будем углублятся в дальнейшую историю, а сразу возмемся за его настройку.
Cobbler управляется 2 способами: CLI и WEB. Мы пропустим настройку через WEB и сразу попробем понять настройку через CLI. Она же просто командная строка. Но сами пакет WEB-сервера все же поставим в показательных целях.
Будем считать что необходимые репозитарий для установок пакетов httpd, модулей python и т.д. у вас уже настроены, поэтому даем комманду

# yum install -y cobbler koan yum-utils cman httpd dhcp xinetd tftp-server

Запускаем службы.

После успешной установки начнем настройку с сервиса DHCP. Это первая служба к которой обратится компьютер загружаемый с PXE.
Вот простейшая конфигурация (/etc/dhcp.conf)

ddns-update-style none;
ignore client-updates;
use-host-decl-names on;
authoritative;

set vendorclass = option vendor-class-identifier;

# Указываем свою сеть
subnet 192.168.1.0 netmask 255.255.255.0 {
# Указываем шлюз по умолчанию
option routers 192.168.1.100;
# Маска подсети
option subnet-mask 255.255.255.0;
# DNS Сервер
option domain-name-servers 192.168.1.200;
# Часовой пояс
option time-offset -18000; #EST
# Диапазон IP адресов которые будем выдавать по DHCP
pool {
range dynamic-bootp 192.168.1.10 192.168.1.100;
default-lease-time 86400;
max-lease-time 86400;
}
# Cервер с которого ббудет проходить загрузка
next-server 192.168.1.140;
# Файл PXE который необходимо скачать по tftp с сервера загрузки
filename "pxelinux.0";
# Соответсвенно разрешаем загрузку
allow bootp;
allow booting;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
}


При наличии нескольких сетевых интерфейсов мы можем указать какой их них прослушивать в файле

/etc/sysconfig/dhcpd, указывая :

DHCPDARGS=ethX

В файле /etc/xinet.d/tftp в строке disable указываем значение no.

disable = no

Далее запускаем службы :

# service dhcpd start
# service httpd start
# service xinetd start
# chkconfig dhcpd on
# chkcondig httpd on
# chkconfig xinetd on

Ну что же. Время проверить всели мы настроили для успешного старта Cobbler.

# cobbler check
The following potential problems were detected:
#0: service cobblerd is not running


Все в порядке. осталось лишь запустить службу cobbler.

# service cobbler start
# chkconfig cobbler on


Заходя вперед хочу сразу же отметить что у нашего cobbler есть великомлепный man, а также конфигурационый файл /etc/cobbler/settings. Для нашей сегодняшей цели мы должны в этом файле поменять лишь 2 раздела. Это server и next_server. По умолчанию они содержат значение 127.0.0.1, а вы должны заменить его либо DNS именем вашего Cobbler сервера либо IP.

Начнем установку дистрибутива RHEL 5.3. Укажем cobbler'у директорию где лежат установочные файлы

# cobbler import --name=RHEL5.3 --mirror=/media/cdrom

Это займет у вас от 10 и более минут, поэтому можете либо пристально наблюдать за процессом либо отойти и попить чая. После импорта посмотрим что у нас вышло

# cobbler distro list
RHEL5.3-i386
RHEL5.3-xen-i386

# cobbler profile list
RHEL5.3-i386
RHEL5.3-xen-i386
rescue-RHEL5.3-i386


Как вы видите у нас есть дистриюутив RHEL 5.3 и default профайлы к нему.
Давайте создадим несколько новых profiles.

# cobbler profile copy --name=RHEL5.3-i386 --newname=dbase-server
# cobbler profile copy --name=RHEL5.3-i386 --newname=proxy-server
# cobbler profile copy --name=RHEL5.3-i386 --newname=web-server


Да все правильно. Мы их не создали а просто продублипровали с default конфига. Но в дальнейшем мы можем их редактировать как нам захочется.

# cobbler profile list
RHEL5.3-i386
RHEL5.3-xen-i386
database-server
proxy-server
rescue-RHEL5.3-i386
web-server

Profile это не просто имя установки. Это файл параметров установки к котиорому четко привязан дистрибутив, kickstart конфиг и различные параметры установки, ядра итд.
Кстати я еше не говорил что с помощью Cobbler можно устанавливать не только RHEL/Fedora, но и SuSE и Debian? Ну вот теперь вы знаете. Кстати проект Spacewalk способен устанавливать Sun Solaris.

# cobbler profile report --name=web-server
profile : web-server
distro : RHEL5.3-i386
comment :
created : Wed Mar 11 13:00:12 2009
dhcp tag : default
enable menu : True
kernel options : {}
kickstart : /var/lib/cobbler/kickstarts/sample.ks
ks metadata : {}
mgmt classes : []
modified : Wed Mar 11 13:13:31 2009
name servers : []
owners : ['admin']
post kernel options : {}
redhat mgmt key : <>
repos : []
server : <>
template_files : {}
virt bridge : xenbr0
virt cpus : 1
virt file size : 5
virt path :
virt ram : 512
virt type : qemu


Допустим к примеру мы создали свой скрипт для Web-server'a и даем команду на редактировоание профайла web-server.

# cobbler profile edit --name=web-server --kickstart=/var/lib/cobbler/kickstarts/web-server.ks


Впринципе на базовом уровне это все. Нам осталось лишь добавить клиента, то есть компьютер на который мы хотим установить ОС и проверить PXE + tftp.

Я использую в качестве компьютера виртуальную машину Sun xVM VirtualBox. Сразу хочу отметить что ОЗУ выделяемов для установки ОС с Cobbler необходимо выставлять более 256 Мб! На самом деле 256М для Linux это нормально, но у Cobbler'a на момент написания статьи существует некий баг который из за нехватки памяти скачивает minstg2.img в котором отсутсвует утилита lspci. Обычно системы скачивают stage2.img. Данная ошибка при установке выглядит так.

Добавляем систему:

# cobbler system add --name=caprica --profile=web-server --mac=08:00:27:2B:BC:4D

Смотрим ее параметры.

# cobbler system list
caprica

# cobbler system report
system : caprica
profile : web-server
comment :
created : Wed Mar 11 13:39:22 2009
gateway :
hostname :
image :
kernel options : {}
kernel options post : {}
kickstart : <>
ks metadata : {}
mgmt classes : []
modified : Wed Mar 11 13:39:22 2009
name servers :
netboot enabled? : True
owners : ['admin']
server : <>
template files : {}
virt cpus : <>
virt file size : <>
virt path : <>
virt ram : <>
virt type : <>
power type : ipmitool
power address :
power user :
power password :
power id :
interface : eth0
mac address : 08:00:27:2B:BC:4D
bonding :
bonding_master :
bonding_opts :
is static? : False
ip address :
subnet :
static routes : []
dns name :
dhcp tag :
virt bridge :

Проверяем настройки PXE и TFTP

# ls -l /tftpboot/pxelinux.cfg/
total 8
-rw-r--r-- 1 root root 291 Mar 11 13:39 01-08-00-27-2b-bc-4d
-rw-r--r-- 1 root root 1757 Mar 11 13:26 default

# cat /tftpboot/pxelinux.cfg/01-08-00-27-2b-bc-4d
default linux
prompt 0
timeout 1
label linux
kernel /images/RHEL5.3-i386/vmlinuz
ipappend 2
append initrd=/images/RHEL5.3-i386/initrd.img ksdevice=eth0 lang= kssendmac
sy
slog=kobol.rhca.com:25150 text ks=http://kobol.rhca.com/cblr/svc/op/ks/system/caprica

Все... Включаем наш компьютер и выставляем в BIOS загрузку по сети. ПК автоматически подгрузит ядро по PXE и начнет автоматическую уставновку.

Дополнение.

Собствено это все не ограничивается возможностями Cobbler. У него есть масса возможностей описаных на официальном сайте проекта. Некоторые из них описал на русском языке Дмитрий Василец.
Про Koan я возможно опишу в следующий раз. Это ПО работает вместе с Cobbler и отвечает за установку виртуальных станций (KVM, Xen, Qemu итд). Интеграция со Spacewalk дало последнему значительное преимущество и возможно следующая статья будет посвящена имено этой связке, мало того я попробую установить Sun Solaris 10 с нее. На последок хочу поделится интересными ссылками на:
- Видеоинтервью с создателем Cobbler
- Статья в RedHat Magazine с создателем Cobbler
- Скринкаст от создателя Cobbler
- Официальный сайт проекта Cobbler/Koan

1 комментарий:

Андрей комментирует...

Вопрос на засыпку - в установленной системе логин и пассвод пользователя какой? Система подхватывает образ, ставится и после перезагрузки приглашение командной строки и на этом все, приплыли. lowman@mail.ru