Cobbler: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория:Linux]]
  +
[[Категория:Cobbler]]
 
=Cobbler=
 
=Cobbler=
 
* использую сеть 172.16.250.0/24 везде
 
* использую сеть 172.16.250.0/24 везде
Строка 199: Строка 201:
 
===монтирование образа системы===
 
===монтирование образа системы===
 
<PRE>
 
<PRE>
mount -t auto -o loop ./CentOS-5.4-x86_64-bin.iso /mnt/iso
+
mount -o loop CentOS-6.3-i386-bin-DVD1.iso /mnt/CentOS-6.3-i386-bin-DVD1
  +
mount -o loop CentOS-6.3-i386-bin-DVD2.iso /mnt/CentOS-6.3-i386-bin-DVD2
# cobbler import --mirror=/media/iso --name=Centos5.4 --arch=x86_64
 
 
</PRE>
 
</PRE>
  +
  +
Первый диск добавляю согласно инструкции
  +
<PRE>
 
cobbler import --path=/mnt/CentOS-6.3-i386-bin-DVD1/ --name=Centos6.2 --arch=i386
  +
</PRE>
  +
  +
Для того что бы добавить второй диск
  +
<PRE>
  +
export DISTRO=Centos6.2-i386
  +
  +
rsync -a '/mnt/CentOS-6.3-i386-bin-DVD2/' /var/www/cobbler/ks_mirror/${DISTRO} --exclude-from=/etc/cobbler/rsync.exclude --progress
  +
  +
COMPSXML=$(ls /var/www/cobbler/ks_mirror/${DISTRO}/repodata/*comps*.xml)
  +
echo ${COMPSXML}
  +
</PRE>
  +
  +
<PRE>
  +
createrepo -c cache -s sha --update --groupfile ${COMPSXML} /var/www/cobbler/ks_mirror/${DISTRO}
  +
</PRE>
  +
  +
На этой стадии в меню PXEBoot уже можно выбрать установку СentOS 6.3
  +
  +
===Репозитории===
  +
Добавить репозиторий:
  +
<PRE>
  +
cobbler repo add --name=Centos6.3-RPMFORGE --mirror=http://fr2.rpmfind.net/linux/dag/redhat/el6/en/i386/rpmforge/ --priority=40 --createrepo-flags="-c cache" --arch=i386
  +
</PRE>
  +
<PRE>
  +
cobbler sync
  +
cobbler reposync
  +
</PRE>
  +
===Создание нового профиля===
  +
Копируем профиль, правим кикстарт скрипт:
  +
<PRE>
  +
cobbler profile copy --name=Centos6.3-x86_64 --newname=Centos6.3-x86_64-cassandra
  +
</PRE>
  +
Смотрим переменные:
  +
<PRE>
  +
cobbler profile dumpvars --name=Centos6.3-x86_64 | grep kickstart
  +
default_kickstart : /var/lib/cobbler/kickstarts/default.ks
  +
kickstart : /var/lib/cobbler/kickstarts/sample.ks
  +
template_remote_kickstarts : 0
  +
</PRE>
  +
Меняем kickstart :
  +
<PRE>
  +
cobbler profile edit --name=Centos6.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-cassandra.ks
  +
</PRE>
  +
Не забыть обновить конфигурацию
  +
<PRE>
  +
cobbler sync
  +
</PRE>
  +
  +
==Проблемы с установкой==
  +
Кратко оставнолюсь на проблемах с которыми я сталкивался
  +
===kickstart===
  +
Внимательно следить за форматом кикстарта - для разных систем формат разный. Даже для Centos 5 и 6 - сильно отличаются.
  +
===Репозитории===
  +
Добавление репозитория createrepo тоже различно для 5 и 6 CentOS. Потому

Текущая версия на 11:21, 23 октября 2012

Cobbler

  • использую сеть 172.16.250.0/24 везде
  • роутер 172.16.250.254
  • машина с кобблером - 172.16.250.1
  • все машины участвующие в установке имеют 1 интерфейс (eth0), и все включено в один "свитч" - в моем случае бридж для кучи виртуалок. сеть абсолютна плоская
  • в случае с виртуалками - обратить внимание на файрволл на хосте.
  • ВАЖНО отключить SELinux

Далее по тексту не останавливаюсь на том почему именно такой IP - это очевидно.

Установка

Включить EPEL

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

vim /etc/yum.repos.d/remi.repo
yum install cobbler-web.noarch  cobbler.noarch
yum install koan yum-utils httpd xinetd cman


cobbler check - проверить настройки.

[root@puppet ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : change 'disable' to 'no' in /etc/xinetd.d/rsync
5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
6 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one

В дефолтной установке нужен запущенный httpd, без него:

cobbler check
httpd does not appear to be running and proxying cobbler, or SELinux is in the way. Original traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line 184, in check_setup
    s.ping()
  File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.6/xmlrpclib.py", line 1235, in request
    self.send_content(h, request_body)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1349, in send_content
    connection.endheaders()
  File "/usr/lib/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib/python2.6/httplib.py", line 720, in connect
    self.timeout)
  File "/usr/lib/python2.6/socket.py", line 567, in create_connection
    raise error, msg
error: [Errno 111] Connection refused

Исправление ошибок которые показывает check

1 : The 'server' field ...

исправить поле server на 172.16.250.1 (IP хоста)

2 : For PXE to be functional, the 'next_server' field in

исправить поле next_server на 172.16.250.1 (IP хоста)

3 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders'

# cobbler get-loaders
task started: 2012-08-29_114756_get_loaders
task started (id=Download Bootloader Content, time=Wed Aug 29 11:47:56 2012)
downloading http://dgoodwin.fedorapeople.org/loaders/README to /var/lib/cobbler/loaders/README
downloading http://dgoodwin.fedorapeople.org/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo
downloading http://dgoodwin.fedorapeople.org/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot
downloading http://dgoodwin.fedorapeople.org/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux
downloading http://dgoodwin.fedorapeople.org/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi
downloading http://dgoodwin.fedorapeople.org/loaders/yaboot-1.3.14-12 to /var/lib/cobbler/loaders/yaboot
downloading http://dgoodwin.fedorapeople.org/loaders/pxelinux.0-3.61 to /var/lib/cobbler/loaders/pxelinux.0
downloading http://dgoodwin.fedorapeople.org/loaders/menu.c32-3.61 to /var/lib/cobbler/loaders/menu.c32
downloading http://dgoodwin.fedorapeople.org/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi
downloading http://dgoodwin.fedorapeople.org/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi
*** TASK COMPLETE ***

4 : change 'disable' to 'no' in /etc/xinetd.d/rsync

Поправить соответвенно ...

5 : debmirror package is not installed, it will be required to manage debian deployments and repositories

Игнорирую - дебиан мне не нужен

6 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one

Как и советует подсказка:

openssl passwd -1 -salt 'random-phrase-here' 'swordfish'

и вписать в конфиг

Настройка компонетов системы

Web-управление

В моей установке уже настроено проксирование через апач, аутентификация отключена. Интерфейс доступен https://172.16.250.1/cobbler_web/
Возможна аутентификация через веб-интерфейс несколькими способами: пароль, созданный утилитой htdigest (сохраняется в файле /etc/cobbler/users.digest), Kerberos, LDAP, Spacewalk/Satellite и тестовый (используется для отладки, всегда testing/testing). Но в настройках по умолчанию аутентификация через веб-интерфейс блокирована. Разрешим ее, для примера будем использовать digest-файл. Для чего в файле /etc/cobbler/modules.conf меняем значение параметра module в секции authentication:

[authentication]

  1. module = authn_denyall # блокировка аутентификации
  2. module = authn_configfile

module = authn_testing
По умолчанию логин и пароль для регистрации – cobbler/cobbler. Его следует изменить при помощи команды:

# htdigest /etc/cobbler/users.digest "Cobbler" cobbler

Сервисы

Для работы нужны запущенные

  • tftpd
  • dhcp
  • dns

соответвенно (возможно были в зависимостях)

yum install dhcp bind

Далее активируем их в файле /etc/cobbler/settings, установив в «1» два параметра:

manage_dhcp: 1
manage_dns: 1

Можно использовать dnsmasq но я как постеснялся, потому:

# cat /etc/cobbler/modules.conf
[dns]
module = manage_bind
#module = manage_dnsmasq

[dhcp]
module = manage_isc
#module = manage_dnsmasq

После всех изменений cobbler sync Эта комманда сгенерирует конфиги для сервисов и перезапустит их.

tftp

У меня нормально заработал со стандартным темплейтом и был активирован по-умолчанию.

dns

Править named.template

dhcp

Править dhcp.template
У меня он получился такой:

cat dhcp.template | grep -v "#" | grep -v ^$
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
subnet 172.16.250.0 netmask 255.255.255.0 {
     option routers             172.16.250.254;
     option domain-name-servers 172.16.250.1;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        172.16.250.100 172.16.250.200;
     filename                   "/pxelinux.0";
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                $next_server;
}
group {
    host $iface.name {
        hardware ethernet $mac;
        fixed-address $iface.ip_address;
        option host-name "$iface.hostname";
        option subnet-mask $iface.netmask;
        option routers $iface.gateway;
        if exists user-class and option user-class = "gPXE" {
            filename "http://$cobbler_server/cblr/svc/op/gpxe/system/$iface.owner";
        } else {
            filename "undionly.kpxe";
        }
        filename "$iface.filename";
        next-server $next_server;
    }
}

Подготовка к развертыванию

на данной стадии если попробовать загрузить машину по сети уже будет досупно меню из 2 пунктов - локальная загрузка и мемтест.

монтирование образа системы

mount -o loop CentOS-6.3-i386-bin-DVD1.iso /mnt/CentOS-6.3-i386-bin-DVD1
mount -o loop CentOS-6.3-i386-bin-DVD2.iso /mnt/CentOS-6.3-i386-bin-DVD2

Первый диск добавляю согласно инструкции

cobbler import --path=/mnt/CentOS-6.3-i386-bin-DVD1/ --name=Centos6.2 --arch=i386

Для того что бы добавить второй диск

export DISTRO=Centos6.2-i386

rsync -a  '/mnt/CentOS-6.3-i386-bin-DVD2/' /var/www/cobbler/ks_mirror/${DISTRO} --exclude-from=/etc/cobbler/rsync.exclude --progress

COMPSXML=$(ls /var/www/cobbler/ks_mirror/${DISTRO}/repodata/*comps*.xml)
echo ${COMPSXML}
createrepo -c cache -s sha --update --groupfile ${COMPSXML} /var/www/cobbler/ks_mirror/${DISTRO}

На этой стадии в меню PXEBoot уже можно выбрать установку СentOS 6.3

Репозитории

Добавить репозиторий:

cobbler repo add --name=Centos6.3-RPMFORGE --mirror=http://fr2.rpmfind.net/linux/dag/redhat/el6/en/i386/rpmforge/  --priority=40 --createrepo-flags="-c cache" --arch=i386
cobbler sync
cobbler reposync

Создание нового профиля

Копируем профиль, правим кикстарт скрипт:

cobbler profile copy --name=Centos6.3-x86_64 --newname=Centos6.3-x86_64-cassandra

Смотрим переменные:

cobbler profile dumpvars --name=Centos6.3-x86_64 | grep kickstart
default_kickstart : /var/lib/cobbler/kickstarts/default.ks
kickstart : /var/lib/cobbler/kickstarts/sample.ks
template_remote_kickstarts : 0

Меняем kickstart :

cobbler profile  edit --name=Centos6.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-cassandra.ks 

Не забыть обновить конфигурацию

cobbler sync

Проблемы с установкой

Кратко оставнолюсь на проблемах с которыми я сталкивался

kickstart

Внимательно следить за форматом кикстарта - для разных систем формат разный. Даже для Centos 5 и 6 - сильно отличаются.

Репозитории

Добавление репозитория createrepo тоже различно для 5 и 6 CentOS. Потому