Cobbler-это Linux система, для автоматической установки и обновления операционных систем по сети. Незаменимая вещь для системных администраторов которым по долгу службы приходится разворачивать систему сразу на нескольких десятков машин.
Установка Cobbler
Устанавливаем репозиторий epel-release
yum install epel-release -y
Устанавливаем сам cobbler с необходимыми пакетами
yum install cobbler cobbler-web dnsmasq syslinux pykickstart xinetd httpd dhcp debmirror pykickstart bind -y
Запускаем cobbler и другие сервисы необходимые для работы и добавляем их в автозагрузку
systemctl start cobblerd ; systemctl enable cobblerd systemctl start httpd ; systemctl enable httpd systemctl start xinetd ; systemctl enable xinetd systemctl start rsyncd ; systemctl enable rsyncd systemctl start dhcp ; systemctl enable dhcp
Если запущен selinux то отключаем его, редактируем файл /etc/selinux/config
SELINUX=disabled
Перезагружаем сервер
shutdown –r now
Добавляем разрешения в firewalld
firewall-cmd --add-port=80/tcp --permanent firewall-cmd --add-port=443/tcp --permanent firewall-cmd --add-service=dhcp --permanent firewall-cmd --add-port=69/tcp --permanent firewall-cmd --add-port=69/udp --permanent firewall-cmd --add-port=4011/udp --permanent firewall-cmd --reload
подключаемся к веб интерфейсу
https://ip address/cobbler_web/
Вводим логин пароль cobbler/cobbler Если вы видите эту страницу, то первую часть установки можно считать завершенной. Все дальнейшие настройки можно делать как через консоль так и через веб интерфейс.
Настройка Cobbler
Задаем пароль root. Этот пароль будет устанавливаться в новых устанавливаемых системах, если не задан в kickstart файле. Для этого генерим хэш пароля
openssl passwd -1
Сохраняем оригинальный файл /etc/cobbler/settings на всякий случай.
cp settings settings.orig
Редактируем settings приведя его к следующему виду
default_password_crypted: "$1$i5Ucz2q9$dRypeZXT5AjfYyi97xr6a0" manage_dhcp: 1 manage_dns: 1 pxe_just_once: 1 next_server: 192.168.1.5 server: 192.168.1.5
В параметр default_password_crypted прописываем сгенерированный хэш next_server – адрес tftp сервера server – ip cobbler сервера У нас tftp и cobber сервер на одной машине, поэтому указываем ip адрес сервера. Редактируем файл /etc/cobbler/dhcp.template, в нем прописываем подсеть которая будет выдаваться по DHCP клиентам Отредактируем файл /etc/cobbler/dnsmasq.template указав диапазон адресов выдаваемых PXE клиентам Перезапускаем cobbler
systemctl restart cobblerd
выполняем
cobbler sync
Если видим TASK COMPLETE значит синхронизация прошла успешно Проверяем что все нормально
cobbler check
Вывод показывает следующее
1 : 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. 2 : comment out 'dists' on /etc/debmirror.conf for proper debian support 3 : comment out 'arches' on /etc/debmirror.conf for proper debian support 4 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them
В общем критических замечаний нет, ну давайте исправим и эти Запускаем команду
cobbler get-loaders
Редактируем /etc/debmirror.conf и /etc/debmirror.conf
sed -i "s/^@dists/#@dists/" /etc/debmirror.conf sed -i "s/^@arches/#@arches/" /etc/debmirror.conf
Устанавливаем fence-agents
yum install fence-agents –y
снова проверяем кобблер
cobbler check
Теперь вывод показывает что никаких замечаний нет
No configuration problems found. All systems go.
Подготовка образа установочного образа системы
Следующим шагом монтируем iso образ. Загрузим на наш сервер iso образ какой нибудь системы, например Centos 7
сd /tmp wget http://mirror.tversu.ru/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
Монтируем iso образ в mnt
mount -t iso9660 -o loop,ro /tmp/CentOS-7-x86_64-Minimal-1810.iso /mnt
Переходим в веб интерфейс и импортируем образ, для этого переходим на вкладку Import DVD, Заполняем поля и нажимаем Run
Или через консоль
cobbler import --arch=x86_64 --path=/mnt --name=CentOS7
Если получили ошибку
No signature matched in /var/www/cobbler/ks_mirror/CentOS7-x86_64
Удаляем директорию /var/www/cobbler/ks_mirror/CentOS7-x86_64
rm -rf /var/www/cobbler/ks_mirror/CentOS7-x86_64
Обнавляем сигнатуру и перезапускаем сервис.
cobbler signature update systemctl restart cobblerd
Снова импортируем образ системы.
cobbler import --arch=x86_64 --path=/mnt --name=CentOS7
Если все успешно вы увидите следующий вывод Смотрим смонтированные образы
cobbler distro list
Или через веб интерфейс меню Distros Информацию о сборке можно посмотреть командой
cobbler distro report --name=CentOS7-x86_64
Создание kickstart файла для установки
Следующим шагом создаем Kickstart файл. Назовем его Centos7.ks. В этом файле задаем параметры для автоматической установки, такие как пароль для пользователя root, настройки сети и т.д. Директория для kickstart файлов /var/lib/cobbler/kickstarts.
vi /var/lib/cobbler/kickstarts/CentOS7.ks
# настройка фаервола(выключаем) firewall --disabled # Режим, установка или обновление install # Путь к образу установки url --url="http://192.168.1.5/cobbler/links/CentOS7-x86_64/" # Пароль root rootpw --iscrypted $1$oajNiL8Z$pJGtHLbsSYroo9whwnp4k/ # Настройка сети network --bootproto=dhcp --device=eth0 --onboot=on # Перезагрузка после установки reboot # Информация об авторизации системы auth useshadow passalgo=sha512 # Использовать графический интерфейс во время установки graphical firstboot disable # Настройка клавиатуры keyboard us # Язык системы lang ru_RU # Конфигурация Selinux selinux disabled # Installation logging level logging level=info # Временная зона timezone Europe/Moscow # Настройка файловой системы bootloader location=mbr clearpart --all --initlabel part swap --asprimary --fstype="swap" --size=1024 part /boot --fstype xfs --size=500 part pv.01 --size=1 --grow volgroup root_vg01 pv.01 logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow %packages @^minimal @core %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end
Обнавляем профиль
cobbler profile edit --name=CentOS7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS7.ks cobbler sync
Запуск установки по сети
Включаем компьютер на который нужно установить систему, в качестве источника загрузки выбираем загрузку по сети Net boot. Если все сделано правильно, то мы увидим как наш компьютер получает ip адрес и начинает загружать по tftp ОС На следующем шаге выбираем наш загрузочный образ в меню загрузки, все остальные действия при установке произойдут в автоматическом режиме