Настройка Cobbler для автоматического PXE-провижининга серверов

Когда парк физических серверов разрастается, ручная установка ОС превращается в узкое место, отнимая часы работы инженера. Мы настраиваем Cobbler для автоматического PXE-провижининга, реализуя проект под ключ — от конфигурации DHCP и TFTP до создания kickstart-шаблонов. Наша команда обеспечивает стабильную работу инфраструктуры и последующую поддержку, чтобы новые серверы вводились в эксплуатацию быстро и без срыва сроков.
Часто задаваемые вопросы

Настройка 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 под ключ — получите консультацию и оценку вашего проекта уже сегодня.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142