Настройка Cobbler для автоматического провижининга серверов
Мы часто сталкиваемся с ситуацией, когда парк физических серверов перевалил за два-три десятка: ручная установка ОС через USB-носители или IPMI-консоль превращается в узкое место. Один новый сервер в дата-центре — это час работы инженера: подключиться к iLO/DRAC, смонтировать ISO, пройти через installer, вбить hostname, IP, timezone, прописать SSH-ключи. При разворачивании кластера из двадцати нод это уже рабочий день. Cobbler закрывает эту задачу: сервер приходит в стойку, получает PXE-запрос, загружается с сети и через 20 минут выходит с установленной ОС, настроенным сетевым интерфейсом и готовым к работе с Ansible. Наши инженеры с 10-летним опытом гарантируют стабильную работу инфраструктуры.
Что ломается при PXE без Cobbler
Типичная самодельная PXE-инфраструктура — это dnsmasq с ручными записями в /etc/dnsmasq.d/, tftp-сервер с каталогом /tftpboot/, разбросанные kickstart-файлы в /var/www/html/ks/ и документация в голове у одного инженера. Проблемы начинаются, когда нужно добавить вторую архитектуру (ARM), поддержать UEFI рядом с Legacy BIOS, или одновременно установить CentOS Stream на одну группу серверов и Ubuntu LTS — на другую.
Часто встречаемая ситуация: kickstart для CentOS содержит network --bootproto=static --ip=192.168.1.100 — жёстко прописанный IP. Когда нужно установить двадцать серверов с разными адресами, файл копируется вручную под каждый хост. Когда через полгода меняется VLAN — исправлять нужно каждый. В Cobbler это решается через шаблоны Cheetah с переменными на уровне системного профиля, что сокращает время на обслуживание в 5 раз.
Как Cobbler ускоряет развёртывание серверов?
Cobbler объединяет в одном месте: DHCP (через ISC DHCP или dnsmasq), TFTP, HTTP для дистрибутивов, шаблонизатор kickstart/preseed/cloud-init и DNS-синхронизацию. Всё управляется через единый CLI или API. Это быстрее самописных решений в 10 раз: добавление нового сервера занимает минуты, а не часы.
Базовая установка на RHEL-совместимом дистрибутиве включает настройку всех компонентов:
dnf install cobbler cobbler-web tftp-server
systemctl enable --now cobblerd tftp.socket httpd
cobbler check # покажет что нужно донастроитьПосле cobbler check обычно нужно исправить /etc/cobbler/settings.yaml:
server: 192.168.10.5 # IP Cobbler-сервера
next_server: 192.168.10.5 # для PXE
manage_dhcp: true
manage_dns: false # если DNS отдельный
manage_tftpd: true
default_password_crypted: "$6$rounds=656000$..."
pxe_just_once: true # после установки не грузить снова с сетиДобавление дистрибутива и создание профиля с kickstart-шаблоном:
mount -o loop /tmp/CentOS-Stream-9.iso /mnt/iso
cobbler import --name=centos9 --arch=x86_64 --path=/mnt/iso
cobbler profile add --name=centos9-baremetal --distro=centos9-x86_64 --kickstart=/var/lib/cobbler/templates/centos9-default.ks --virt-ram=2048Сам шаблон centos9-default.ks использует переменные Cobbler для динамической подстановки IP, hostname и других параметров.
Регистрация конкретного сервера:
cobbler system add --name=node-05 --profile=centos9-baremetal --mac=aa:bb:cc:dd:ee:05 --ip-address=192.168.10.105 --netmask=255.255.255.0 --gateway=192.168.10.1 --hostname=node-05.internal --name-servers="192.168.10.2"
cobbler syncПосле cobbler sync обновляется конфиг DHCP, TFTP и HTTP. Сервер подключается к сети, получает DHCP с указанием загрузчика, тянет pxelinux через TFTP, загружается, скачивает kickstart — и установка идёт без участия инженера.
UEFI, Secure Boot и мультиархитектурность
Современные серверы часто поставляются с UEFI по умолчанию. Cobbler поддерживает GRUB2-EFI через shim. Нужно установить пакеты grub2-efi-x64 и shim-x64, скопировать shimx64.efi и grubx64.efi в /var/lib/tftpboot/. В settings.yaml добавляется:
bootloaders_dir: /var/lib/cobbler/loaders grub2_mod_dir: /usr/lib/grub/x86_64-efi После этого в профиле можно выбирать загрузчик явно. Cobbler генерирует отдельные PXE-конфиги для Legacy и UEFI-режимов под одним MAC-адресом.
После установки: интеграция с Ansible
Cobbler — это только провижининг ОС. После того как сервер поднялся, его нужно передать в Ansible. Cobbler умеет экспортировать инвентарь через динамический inventory-скрипт:
cobbler-ext-nodes --list # вернёт JSON с группами по профилям Добавляем в ansible.cfg:
[inventory] enable_plugins = cobbler Inventory-плагин community.general.cobbler подтягивает хосты, группирует по профилям и передаёт переменные (IP, hostname, дистрибутив) в переменные хоста. Первый Ansible-run после провижининга выполняет hardening, настройку мониторинга, регистрацию в CMDB.
Сравнение Cobbler и ручной установки
| Критерий | Ручная установка | Cobbler |
|---|---|---|
| Время на 20 серверов | 20 часов | 1 час |
| Риск ошибок | высокий | минимальный |
| Масштабирование | сложное | автоматическое |
| Поддержка UEFI | ручная настройка | встроенная |
Сроки и объём работ
| Конфигурация | Срок |
|---|---|
| Один дистрибутив, один профиль, без DHCP-интеграции | 1–2 дня |
| Полноценный стенд: 2–3 дистрибутива, UEFI+Legacy, DHCP | 3–5 дней |
| Интеграция с Ansible, динамический инвентарь, шаблоны | +2–3 дня |
| Мультисайтовая конфигурация с репликой Cobbler | от 1 недели |
Настройка Cobbler описана в официальной документации: Cobbler.
Работа начинается с аудита существующей PXE-инфраструктуры (или её отсутствия), инвентаризации моделей серверов и требований по ОС. Финальная документация включает схему сети, описание профилей и инструкцию по добавлению новых систем. Экономия времени при внедрении Cobbler составляет до 90% на каждом новом сервере. Закажите настройку Cobbler под ключ — получите консультацию и оценку вашего проекта уже сегодня.







