Ключевые слова:cobbler, (найти похожие документы)
From: Василец Дмитрий
Date: Mon, 25 Sep 2010 17:02:14 +0000 (UTC)
Subject: Организация сетевой загрузки и обновления группы машин при помощи Cobbler
Оригинал: http://vasilec.blogspot.com/2008/12/cobbler.htmlhttp://vasilec.blogspot.com/2008/12/cobbler_04.htmlЧасть первая - о установке.
Рассмотрим вариант с сетевой установкой
И так - у нас есть сеть и компьютер на который необходимо по сети установить ОС(называть
его будем клиентом). Сервер с которого будет устанавливаться (просто сервер).
Устанавливаем на машину с которой будет производиться установка cobbler и необходимые
пакеты.
yum install cobbler dhcp httpd syslinux tftp-server -y
dhcp
Первая служба к которой обратится клиент будет dhcp - потому настроим его.
Вот простейший рабочий конфиг.
ddns-update-style none;
ignore client-updates;
use-host-decl-names on;
authoritative;
set vendorclass = option vendor-class-identifier;
# указываем свою сеть
subnet 10.20.4.0 netmask 255.255.255.0 {
# задаем роутер по умолчанию
option routers 10.20.4.1;
# маска подсети
option subnet-mask 255.255.240.0;
# сервер днс
option domain-name-servers 10.20.4.1;
# часовой пояс
option time-offset -18000; #EST
# диапазон адресов которые будем раздавать по dhcp
# в нашем случае от 10.20.4.2 до 10.20.4.100
pool {
range dynamic-bootp 10.20.4.2 10.20.4.100;
# время аренды адреса по умолчанию
default-lease-time 86400;
# максимальное время аренды адреса
max-lease-time 86400;
}
# сервер с которого попытаться загрузиться
next-server 10.20.4.1;
# файл который скачать по tftp протоколы с сервера загрузки
filename "pxelinux.0";
# разрешаем загрузку
allow bootp;
allow booting;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
}
Если несколько сетевых интерфейсов то в файле /etc/sysconfig/dhcpd указываем
какой из них слушать DHCPDARGS=eth1
Запускаем dhcpd сервер
service dhcpd start
tftp
Следом за dhcpd клиент воспользуется tftp сервером что б скачать файл
pxe который в свою очередь уже будет скачивать ядро(функция его основная
но не единственная) tftp-server будет запускаться через xinetd - для
этого в файле /etc/xinetd.d/tftp в строке disable поставьте значение no.
disable = no
и перезапустите xinetd
service xinetd restart
cobbler
проверим все ли настройки выполнены необходимые для cobbler
cobbler check
Скорее всего он попросит запустить httpd cobblerd и подредактировать
шаблоны kickstart файлов заменив хеш пароля по умолчания на ваш хеш
теперь необходима сама устанавливаемая операционная система
Если она у нас на dvd диске, монтируем диск в /home/os
mount /dev/dvd-hdb /home/os
и забираем все файлы указывая название --name=F9 откуда берем файлы --mirror=/home/os
и архитектуру процессора --arch=x86_64
cobbler import --name=F9 --mirror=/home/os --arch=x86_64
Еще один вариант - синхронизировать с официальном сервером, например используем сервер яндекса
cobbler import --name=F10 --mirror=rsync://mirror.yandex.ru/fedora/linux/releases/10/Fedora/x86_64/os --arch=x86_64
И еще один вариант - не использовать синхронизацию - мы просто укажем где есть весь набор пакетов
cobbler import --name=F9 --mirror=/home/os --arch=x86_64 --available-as=nfs://10.20.4.1:/home/os
и настроить nfs
после того как синхронизация завершится
нужно настроить в kickstart файле источник установки.
в нашем случае это http://10.20.4.1/cobbler/ks_mirror/F9-x86_64/
Узнать можно вызвав синхронизацию снова и найти строку http://@@http_server@@/cobbler/ks_mirror/config/F9-x86_64-0.repo
где @@http_server@@ адресс сервера
по ссылке расположен файл конфигурации репозитория - его можно прописать для использования локальног
о репозитория предоставляемого cobbler
там же указан адрес папки со всеми файлами - вот его и пишем как источник установки
После того как написан kickstart файл (http://fedoraproject.org/wiki/Anaconda/Kickstart) добавим клиента
cobbler system add --name=system1 --profile=F9-x86_64 --mac= --ip= --hostname= --kickstart=/root/ks.system1.cfg
Параметров на самом деле много - даже определенные поля kickstart файла
можно задать персонально для каждого клиента
Посмотреть список профилей можно с помощью команды
koan --server=10.20.4.1 --list=profiles
(подробней о koan в след.раз)
Теперь указываем в биосе клиента,что загружаемся в первую очередь с
сетевой карточки используя pxe.
Если kickstart файл написан правильно то все загрузится и установится
самостоятельно.
Часть 2
Cobbler не ограничивается ролью загрузчика, можно настроить взаимодействие его с dhcp и
dns. А также есть у него простенький веб интерфейс - который ,на мой взгляд, страшнее
консольки.
Web интерфейс
Настраиваем интерфейс после настройки всех служб и синхронизации с
репозиторием. Смотри в /etc/cobbler/modules.conf Аутентификация по
файлу. (еще варианты запретить для всех:"authn_denyall", использовать
spacewalk: "authn_spacewalk" - пользователь с правами администратора
на RHN/spacewalk может залогиниться используя теже лоигн и пароль ,
но необходимо прописать в /etc/cobbler/settings строчку
"spacewalk_url: "http://сервер_spacewalk/rpc/api" , аутентификацию
проводит apache и kerberos : "authn_passthru", использовать ldap:
"authn_ldap" , тестирование - логин и пароль "testing"
:"authn_testing", если все выше перечиленное не устраивает то можно и
самому написать модель аутентификации)
[authentication]
module = authn_configfile
Авторизацию разрешить всем (можно также использовать authz_configfile
- т.е. только тем кто перечислен в файле, либо authz_ownership -
пользователям перечисленным в users.conf и добавить пренадлежность
объектов к определенному хозяину, либо опять написать свой модуль )
[authorization]
module = authz_allowall
Взаимодействие cobbler с dhcpd
Используем стандартный сервер [13]isc-dhcp . В /etc/cobbler/settings
разрешаем администрировать dhcpd manage_dhcp: 1 В файл
/etc/cobbler/dhcp.template вносим изменения (если нужно) Теперь
вносим новую систему
cobbler system add --name= --mac= --profile= --ip= <>
синхронизируем конфигурацию dhcpd c cobbler
cobbler sync
Если dhcpd находится на том же сервере что и cobbler то по умолчанию
перезапустится. За это в конфиге отвечают строки restart_dhcp: 1
Все - теперь к определенным мак адресам привязаны ip которые мы
назначили Редактировать можно так
cobbler system edit --name= --mac= --profile= --ip=
Взаимодействие cobbler с bind
Включаем редактирование конфигов bind manage_dns: 1
Редактируем /etc/cobbler/named.template вписывая наши данные
Открываем файл /etc/cobbler/settings , находим такие параметры manage_forward_zones и
manage_reverse_zones - это соответственно прямая и обратная зона.
Конфиг пишется на yaml, он и в rails используется.
Вот что примерно должно получится
manage_forward_zones:
- 'adenin.ru'
manage_reverse_zones:
- '10.20.4'
Для нашей зоны adenin.ru нужно в папке /etc/cobbler/zome_templates
(если ее нет - создайте) создать файл adenin.ru , файл называется так
же как и прямая зона , или зоны, в manage_forward_zones.
И самое важное, каждой системе в необходимо задать hostname вида
node1.adenin.ru cobbler system edit --name=node1
--hostname=node1.adenin.ru и выполняем
cobbler sync
Bind перезапустится автоматом.
Подключение репозиториев с обновлениями
Необходимо получить url резотирия для нашей архитектуры и дистрибутива
Например для fedora9
ftp://dispenser.yandex.net/fedora/linux/updates/9/x86_64.newkey/
Подсмотел в /etc/yum.repos.d/fedora-updates-newkey.repo
Включаем его
cobbler repo add --mirror=ftp://dispenser.yandex.net/fedora/linux/updates/9/x86_64.newkey/ \
--name=f9_x86_64_update_newkeys
И выполняем синхронизацию
cobbler reposync
Теперь добавляем профиль который будет использовать список
репозиториев включающий нужные нам
cobbler profile add --name=f9-x86_64_test --repos="список имен репозиториев" --distro=F9-x86_64
Что б после установки система использовала для обновления наш
репозиторий вписыавем в файл /etc/cobbler/settingsyum_post_install_mirror: 1
В крон вписываем задание обновляться и наслаждаемся всегда свежим
локальным репозиторием Кстати - так же можно создать репозиторий для
debian-based дистрибутивов, только добавляем аргумент --breed=apt