Cobbler: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показаны 23 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:Linux]] |
||
+ | [[Категория:Cobbler]] |
||
=Cobbler= |
=Cobbler= |
||
+ | * использую сеть 172.16.250.0/24 везде |
||
+ | * роутер 172.16.250.254 |
||
+ | * машина с кобблером - 172.16.250.1 |
||
+ | * все машины участвующие в установке имеют 1 интерфейс (eth0), и все включено в один "свитч" - в моем случае бридж для кучи виртуалок. сеть абсолютна плоская |
||
+ | * в случае с виртуалками - обратить внимание на файрволл на хосте. |
||
+ | * <B>ВАЖНО отключить SELinux </B> |
||
+ | |||
+ | Далее по тексту не останавливаюсь на том почему именно такой IP - это очевидно. |
||
+ | |||
+ | ==Установка== |
||
Включить EPEL |
Включить EPEL |
||
<PRE> |
<PRE> |
||
Строка 81: | Строка 93: | ||
</PRE> |
</PRE> |
||
− | === 4 : change 'disable' to 'no' in /etc/xinetd.d/rsync === |
+ | === 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 === |
||
+ | |||
+ | === 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 === |
=== 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 === |
||
+ | Как и советует подсказка: |
||
+ | <PRE> |
||
+ | openssl passwd -1 -salt 'random-phrase-here' 'swordfish' |
||
+ | </PRE> |
||
+ | и вписать в конфиг |
||
+ | |||
+ | ==Настройка компонетов системы== |
||
+ | |||
+ | ===Web-управление=== |
||
+ | В моей установке уже настроено проксирование через апач, аутентификация отключена. Интерфейс доступен https://172.16.250.1/cobbler_web/ |
||
+ | <BR> |
||
+ | Возможна аутентификация через веб-интерфейс несколькими способами: пароль, созданный утилитой htdigest (сохраняется в файле /etc/cobbler/users.digest), Kerberos, LDAP, Spacewalk/Satellite и тестовый (используется для отладки, всегда testing/testing). Но в настройках по умолчанию аутентификация через веб-интерфейс блокирована. Разрешим ее, для примера будем использовать digest-файл. Для чего в файле /etc/cobbler/modules.conf меняем значение параметра module в секции authentication: |
||
+ | |||
+ | [authentication] |
||
+ | # module = authn_denyall # блокировка аутентификации |
||
+ | # module = authn_configfile |
||
+ | module = authn_testing |
||
+ | <BR> |
||
+ | По умолчанию логин и пароль для регистрации – cobbler/cobbler. Его следует изменить при помощи команды: |
||
+ | <PRE> |
||
+ | # htdigest /etc/cobbler/users.digest "Cobbler" cobbler |
||
+ | </PRE> |
||
+ | |||
+ | ===Сервисы=== |
||
+ | Для работы нужны запущенные |
||
+ | * tftpd |
||
+ | * dhcp |
||
+ | * dns |
||
+ | соответвенно (возможно были в зависимостях) |
||
+ | <PRE> |
||
+ | yum install dhcp bind |
||
+ | </PRE> |
||
+ | Далее активируем их в файле /etc/cobbler/settings, установив в «1» два параметра: |
||
+ | <PRE> |
||
+ | manage_dhcp: 1 |
||
+ | manage_dns: 1 |
||
+ | </PRE> |
||
+ | Можно использовать dnsmasq но я как постеснялся, потому: |
||
+ | <PRE> |
||
+ | # cat /etc/cobbler/modules.conf |
||
+ | [dns] |
||
+ | module = manage_bind |
||
+ | #module = manage_dnsmasq |
||
+ | |||
+ | [dhcp] |
||
+ | module = manage_isc |
||
+ | #module = manage_dnsmasq |
||
+ | </PRE> |
||
+ | После всех изменений |
||
+ | <B> |
||
+ | cobbler sync |
||
+ | </B> |
||
+ | Эта комманда сгенерирует конфиги для сервисов и перезапустит их. |
||
+ | ====tftp==== |
||
+ | У меня нормально заработал со стандартным темплейтом и был активирован по-умолчанию. |
||
+ | |||
+ | ====dns==== |
||
+ | Править named.template |
||
+ | |||
+ | ====dhcp==== |
||
+ | Править dhcp.template <BR> |
||
+ | У меня он получился такой: |
||
+ | <PRE> |
||
+ | 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; |
||
+ | } |
||
+ | } |
||
+ | </PRE> |
||
+ | ==Подготовка к развертыванию== |
||
+ | на данной стадии если попробовать загрузить машину по сети уже будет досупно меню из 2 пунктов - локальная загрузка и мемтест. |
||
+ | |||
+ | ===монтирование образа системы=== |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </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]
- module = authn_denyall # блокировка аутентификации
- 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. Потому