Развертывание большого количества систем и приложений — задача непростая и многоэтапная. За долгое время было разработано большое количество технологий и инструментов, их реализующих, поэтому с ходу разобраться не всегда просто. Сobbler сводит разные решения в один проект, а единый интерфейс позволяет не отвлекаться на особенности работы с каждым из них.
Проект Cobbler
Cobbler — это сервер сетевой установки и обновления Linux- и Windows-систем, позволяющий создать среду бездисковой загрузки, включающую образы и репозитории пакетов, сконфигурировать и развернуть ОС. Поддерживаются как реальные ПК, так и виртуальные машины. По факту Сobbler — это удобная надстройка над привычными инструментами PXE, TFTP, DHCP и DNS, обеспечивающими сетевую загрузку систем, и утилитами работы с образами и репозиториями. От администратора скрыты особенности и настройки всех компонентов, после установки доступны шаблоны конфигурационных файлов, которые находятся в одном каталоге, необходимо лишь изменить их под свои условия. Управление всеми связанными демонами (перезагрузка и обновление конфигурации) осуществляется всего одной командой.
Также Cobbler интегрирован в среду управления Spacewalk (систему автоматизации управления конфигурацией Puppet и Func), позволяющую отдавать команды одновременно на множество систем. Причем можно, например, как вызывать Puppet после развертывания ОС средствами Cobbler, так и наоборот — использовать Cobbler в манифестах Puppet. Поддерживается интеграция с LDAP. Все это обеспечивает полный цикл управления IT-инфраструктурой.
Изначально Cobbler был рассчитан на установку и использование в дистрибутивах, производных от Red Hat, — RHEL, CentOS, Fedora и так далее. Со временем он был адаптирован для Ubuntu, Debian, SUSE, а в репозиториях этих дистрибутивов появились пакеты. При развертывании с помощью Cobbler OC Windows всю первоначальную подготовку образов необходимо будет делать самостоятельно при помощи Windows AIK / Windows ADK.
Написан Сobbler на Python, распространяется по лицензии GNU GPLv2. Управление осуществляется при помощи консольной утилиты cobbler или веб-интерфейса. Для интеграции со сторонними приложениями предлагается XML-RPC-интерфейс.
Установка Сobbler
Сobbler, несмотря на внешнюю простоту, достаточно сложная система, прежде всего из-за большого спектра различных технологий, но он обеспечивает основную функциональность из коробки практически без дополнительной подстройки. Хотя представление о сетевой загрузке, знание PXE и методики автоматизации установки дистрибутива очень приветствуются.
На момент написания статьи текущая версия 2.6.11. В репозитории EPEL находится именно она, в репозитории Ubuntu релиз ощутимо запаздывает (на момент написания статьи — 2.4.1). При необходимости установить самый свежий релиз всегда можно, используя исходные тексты Git. В принципе, алгоритм развертывания Сobbler не меняется уже несколько лет, поэтому все сказанное актуально и для других версий. Работе Cobbler будет мешать firewall и SELinux, в тестовой среде их можно отключить. В брандмауэре должны быть открыты порты 69, 80, 443 и 25151 (в установке по умолчанию). В Red Hat дистрибутивах понадобится подключить репозиторий EPEL, в Ubuntu нужный пакет уже есть в основном репозитории.
$ sudo apt install cobbler cobbler-web
В принципе, cobbler-web — необязательный компонент и необходим только в том случае, если планируется использовать веб-интерфейс. Все настройки можно делать в командной строке.
В процессе будут установлены некоторые пакеты для удовлетворения зависимостей. Следует внимательно ознакомиться с их списком: для разных дистрибутивов и их версий он будет отличаться. В качестве DNS и DHCP может быть использован как сервер, установленный на локальной системе, так и любой внешний доступный сервер.
В Ubuntu, например, все пакеты, необходимые для сетевой загрузки и работы с образами, представлены в качестве рекомендуемых и по умолчанию не ставятся: DNS (BIND9), DHCP-сервер, TFPTD-утилиты создания метаданных createrepo, debmirror, genisoimage, pxelinux и другие. Сobbler поддерживает dhcp3-server и dnsmasq (обеспечивает как DNS, так и DHCP). В зависимостях пакетов указано имя dhcp3-server, но в новых версиях Ubuntu пакет переименован в isc-dhcp-server. Сам Cobbler имеет встроенный TFTP-сервер, но рекомендуется использовать внешний.
В Red Hat список, конечно, будет чуть другой.
# wget
http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh epel-release-latest-7.noarch.rpm
# yum install cobbler cobbler-web dhcp debmirror pykickstart system-config-kickstart dhcp mod_python tftp cman -y
После установки запускаем:
$ sudo service cobbler start
В Red Hat демон называется cobblerd. Все установлено, теперь можно переходить к настройкам.
Настройки Cobbler
После установки в каталоге /etc/cobbler появится несколько подкаталогов, в которых находятся шаблоны сервисов, параметры аутентификации, выбора модулей и другие. Назначение некоторых и настройки внутри, в принципе, должны быть понятны. Кроме этого, в /var/lib/cobbler будут размещены шаблоны, касающиеся настройки ОС и работы PXE. Например, в kickstarts найдем несколько готовых шаблонов для работы Anaconda kickstart, в loaders — загрузчики и так далее. При наличии своих готовых файлов просто копируем сюда. В Red Hat дистрибутивах нужный файл после установки ОС находится в домашнем каталоге root:
# cp /root/anaconda-ks.cfg /var/lib/cobbler/kickstarts/
centos7.ks
В Ubuntu шаблоны kickstart в установочном образе находятся в каталоге pressed:
$ sudo cp -v preseed/*seed /var/lib/cobbler/kickstarts/
«/mnt/preseed/sample.seed» -> «/var/lib/cobbler/kickstarts/sample.seed»
Демон cobblerd берет установки в файле /etc/cobbler/settings. Здесь находятся параметры использования других сервисов (TFTP, DHCP, Puppet, Func, LDAP и так далее), отправка отчетов на SMTP, виртуальные интерфейсы, рабочие каталоги и прочее. Файл в YAML-стандарте, хорошо комментирован, поэтому разобраться можно.
Управление настройками и функциями Cobbler производится при помощи веб-интерфейса и консольной утилиты cobbler. Все параметры можно посмотреть в man-странице или запустив с ключом --help.
Веб-интерфейс доступен по адресу https://server/cobbler_web, также через веб можно получить доступ к XML-RPC http://server/cobbler_api. В вебе четыре секции: Configuration, Resources, Actions и Cobbler. Пользоваться в общем просто: нажимаем ссылку или заполняем параметры. В веб-консоли в большинстве пунктов доступны основные параметры, более тонкую настройку можно сделать только в консоли. Хотя, например, настройка системы через веб устроена очень наглядно и удобно.
После установки для проверки готовности компонентов сервера и анализа файла settings необходимо запустить утилиту cobbler с параметром check:
$ sudo cobbler check
При первом запуске в ответ получим список проблем, которые следует решить перед использованием Cobbler. В каждой ситуации он будет свой, хотя несколько пунктов, касающиеся установок по умолчанию, обычно характерны для всех дистрибутивов. Следует внимательно их изучить и после устранения повторно запустить проверку.
Комментарии 33
Винду разворачивать на два десятка компов из бекапов(уникальных для каждого) том я умею, а вот про Cobbler и не знал, к своему стыду.
Но конфигурить то надо непосредственно на конечной машине перед началом компиляции. SSH там работает в оба конца?
В 2004-ом, в ЛинуксЦентре купил Gentoo и до сих пор с ней.
У меня сейчас кроме Gentoo И OpenBSD ни одного исошника нет.