Накочуємо вісь

Зміст статті
Розгортання великої кількості систем та додатків — завдання непросте та багатоетапне. За довгий час було розроблено велику кількість технологій та інструментів, що їх реалізують, тому з ходу розібратися не завжди просто. Сobbler зводить різні рішення в один проект, а єдиний інтерфейс дозволяє не відволікатися на особливості роботи з кожним із них.
Проект Cobbler
Cobbler – це сервер мережевої установки та оновлення Linux- та Windows-систем, що дозволяє створити середовище бездискового завантаження, що включає образи та репозиторії пакетів, налаштувати та розгорнути ОС. Підтримуються як реальні ПК, і віртуальні машини. За фактом Сobbler – це зручна надбудова над звичними інструментами PXE, TFTP, DHCP та DNS, що забезпечують мережне завантаження систем, та утилітами роботи з образами та репозиторіями. Від адміністратора приховані особливості та налаштування всіх компонентів, після встановлення доступні шаблони конфігураційних файлів, що знаходяться в одному каталозі, необхідно лише змінити їх під свої умови. Управління всіма пов'язаними демонами (перезавантаження та оновлення конфігурації) здійснюється лише однією командою.
Також Cobbler інтегрований у середовище управління Spacewalk (систему автоматизації управління конфігурацією Puppet і Func), що дозволяє віддавати команди одночасно безліч систем. Причому можна, наприклад, викликати Puppet після розгортання ОС засобами Cobbler, так і навпаки - використовувати Cobbler в маніфестах Puppet. Підтримується інтеграція із LDAP. Все це забезпечує повний цикл керування IT-інфраструктурою.
Спочатку Cobbler був розрахований на встановлення та використання в дистрибутивах, похідних від RedHat - 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 потрібний пакет вже є в основному репозиторії.
В принципі, cobbler-web є необов'язковим компонентом і необхідним лише в тому випадку, якщо планується використовувати веб-інтерфейс. Усі налаштування можна робити у команднійрядку.
У процесі буде встановлено деякі пакети задоволення залежностей. Слід уважно ознайомитися з їх списком: для різних дистрибутивів та їх версій він буде відрізнятися. Як DNS і DHCP може бути використаний як сервер, встановлений на локальній системі, так і будь-який доступний зовнішній сервер.
У Red Hat список, звичайно, трохи інший.
Після встановлення запускаємо:
У Red Hat демон називається cobblerd. Все встановлено, тепер можна переходити до налаштувань.
Налаштування Cobbler
Після встановлення в каталозі /etc/cobbler з'явиться кілька підкаталогів, де знаходяться шаблони сервісів, параметри автентифікації, вибору модулів та інші. Призначення деяких і параметри всередині, в принципі, повинні бути зрозумілі. Крім цього, у /var/lib/cobbler будуть розміщені шаблони, що стосуються налаштування ОС та роботи PXE. Наприклад, у kickstarts знайдемо кілька готових шаблонів для роботи Anaconda kickstart, у loaders — завантажувачі тощо. За наявності готових файлів просто копіюємо сюди. У Red Hat дистрибутивах потрібний файл після встановлення ОС знаходиться у домашньому каталозі root:
У Ubuntu шаблони kickstart в настановному образі знаходяться в каталозі pressed :
Керування налаштуваннями та функціями Cobbler здійснюється за допомогою веб-інтерфейсу та консольної утиліти cobbler. Всі параметри можна переглянути в man-сторінці або запустивши ключем --help .
Після встановлення для перевірки готовності компонентів сервера та аналізу файлу settings необхідно запустити утиліту cobbler з параметром check:
При першому запуску у відповідь отримаємо список проблем, які потрібно вирішити перед використанням Cobbler. У кожній ситуації він буде свій, хоча кілька пунктів щодо установок за замовчуванням,зазвичай характерні всім дистрибутивів. Слід уважно їх вивчити та після усунення повторно запустити перевірку.

Змінити порти можна у файлі setting у параметрах:
Друга помилка пов'язана з неможливістю провести аутентифікацію у XML-RPC.
Необов'язково це проблема облікових даних, швидше за неправильно налаштований певний параметр або сервіс. Але розберемося з керуванням обліковими записами.
Облікові дані
Під час інсталяції автоматично ставиться логін/пароль cobbler/cobbler для доступу через веб-інтерфейс або XML-RPC. Аутентифікація можлива різними способами: логін/пароль, PAM, Kerberos, LDAP, Spacewalk, є тестовий (testing/testing) та свій модуль. Налаштовуються вони /etc/cobbler/modules.conf . За замовчуванням:
У цьому випадку використовується файл /etc/cobbler/users.digest , логін та пароль для якого генерується як при роботі з веб-сервером:
Ввести пароль. Якщо вказаний спосіб authn_denyall , це означає, що вхід заблоковано і потрібно змінити метод.
Це зручно, якщо доступ матиме невелику кількість користувачів. Замінивши значення на authz_ownership ми отримуємо можливість використання груп, тобто певні користувачі можуть керувати установкою своїх систем. Групи описуються у файлі users.conf. Всі, хто входить до групи admin або до секції [admins], можуть керувати будь-якими об'єктами. Група для всіх об'єктів за замовчуванням (тобто тих, для яких не вказано власника параметром --owner у командному рядку) встановлюється параметром default_ownership у файлі settings :
При установці нових ОС для root використовується пароль, вказаний у параметрі (зашифровано):
За замовчуванням пароль cobbler , алеслід його змінити, вставивши між лапками згенерований за допомогою команди openssl passwd -1 MD5-хеш.
У Ubuntu потрібний IP ставиться під час установки, Red Hat зазвичай коштує 127.0.0.1. Також можна дозволяти локальні запити надсилати на localhost, а не використовувати зовнішній IP:
Далі переглядаємо всі параметри та включаємо потрібні. Прописуємо в bind_master та default_name_servers сервери, які будуть використовуватися, та включаємо керування потрібними функціями. Після встановлення DNS і DHCP за замовчуванням відключені просто міняємо 0 на 1 там, де нам потрібно:
Ще важливий момент. До версії Cobbler 2.4.0, щоб набули чинності всі зміни /etc/cobbler/settings , потрібно обов'язкове перезавантаження демона. Тепер усі параметри можна налаштовувати на льоту за допомогою команди cobbler setting. За замовчуванням така можливість відключена, щоб її активувати, слід встановити один параметр allow_dynamic_settings і перезапустити демон.
Дивимося всі налаштування:

І міняємо потрібну:
Після цього значення набуде чинності і буде збережено у файлі. Якщо помилитися з назвою параметра, буде видано помилку, але неправильне значення буде мовчки проігноровано.