Search
Write a publication
Pull to refresh

Comments 5

Сложности были с доставкой скриптов настройки на серверы без настроенной сети. При небольшом количестве серверов можно было собрать ISO и подключить его как media-CD через IPMI, но это решение очень плохо масштабировалось — попробуйте проделать такую операцию на 150 машинах.

Решением проблем стал скрипт для сборки кастомизированного дистрибутива из оригинального образа. В дистрибутив добавили все необходимые компоненты: скрипты автоматической настройки сетей, утилиты для развертывания локальных репозиториев (особенно важно для Astra Linux), предустановленные пакеты для работы с системами хранения (iSCSI, LVM) и виртуальными сетями (Open vSwitch).

Извините, но я вот эту часть вообще не понял. Собрать ISO и подключить - это сложно для 150 машин, а сборка кастомизированного дистрибутива из оригинального образа и видимо тоже подключить - оказалось проще? Какой оригинальный образ - ubuntu 18?

Мы написали еще один Python-скрипт, который брал на себя всю эту рутину, используя данные из созданного ранее system-config, и интегрировали его в дистрибутив ОС, чтобы он был доступен сразу после установки. В итоге подготовка сотни серверов сократилась с нескольких дней до одного часа.

Затем тут пишите что в дистрибутив добавили скрипт. А почему на этапе сборки нельзя было его добавить?

Много полезного нашел в статье но где-то логика повествования сломалась.

Извините, но я вот эту часть вообще не понял. Собрать ISO и подключить - это сложно для 150 машин, а сборка кастомизированного дистрибутива из оригинального образа и видимо тоже подключить - оказалось проще? Какой оригинальный образ - ubuntu 18?

Да, c кастомным дистрибутивом оказалось быстрее и проще. Но, опять же, это не конечный результат.
Основная проблема с обычным образом - это доставить в него необходимые конфиги, скрипты, пакеты и прочее. Конфиг (system-config) и настройки ОС индивидуальны для каждой площадки, поэтому на каждой площадке мы последовательно:

  1. Генерируем конфиг скриптом.

  2. Собираем образ скриптом один раз под одну площадку.

  3. Ставим кастомный образ, подключая его к каждому серверу один раз.

  4. Отвечаем на единственный вопрос инсталлятора - на какие диски ставить; при этом шаблоны разметки все уже готовы.

  5. После инсталляции запускаем один раз скрипт настройки ОС (напоминаю, у нас сети нет, скрипт только через mediaCD можно закинуть, а тут он уже есть в дистрибутиве).

  6. Получаем готовый сервер. Нам нужно по-максимуму избавиться от ручной работы, так зачем собирать два ISO и два раза подключать mediaCD, когда можно это сделать один раз. Предположим, можно пойти другим путем, через сеть закинуть нужные скрипты и пакеты. Для этого нам потребуется целый ряд команд, а мы ручную работу убираем. Плюс, потом эту же сеть перенастраивать, т.к. в нашей архитектуре используется Open vSwitch (которого нет в оригинальном дистрибутиве) и на 99% всех инсталляций сеть в бонде, а со стороны коммутатора LACP. Поэтому поставить ОС и настроить там сеть встроенными средствами сложно и не имеет смысла. В кастомном дистрибутиве уже установлены OVS пакеты и все остальное, есть нужный скрипт, который запускаем один раз. Скрипт спрашивает имя хоста, и дальше уже сам все что нужно делает (не только настройка сети, но и подготовка ОС в целом). После этого все остальное при необходимости можно делать уже по сети.

Оригинального образа как такового не было, были и есть поддерживаемые ОС. В описываемое в статье время была только Ubuntu 18, ее дорабатывали, но потом перешли на Астру. Соответственно, кастомный образ уже в основном была именно Астра. Сейчас и от нее уходим в направлении своей vCore.

Затем тут пишите что в дистрибутив добавили скрипт. А почему на этапе сборки нельзя было его добавить?

К написанному выше, все что докидывается потом - это лишние действия (особенно если через mediaCD ISO). И если у нас нет сети, то как мы докинем скрипт, который настраивает сеть? Проще открыть консоль IPMI и запустить там скрипт один раз.

Ого! Честно говоря приятно удивлен большому развернутому ответу. Пока читал вспоминал статью где рассказывали как ставят кубер клиентам при помощи флешек. Вы полностью ответили на мои вопросы.

Он несколько месяцев собирал информацию от заказчиков, разработчиков и команды внедрения, чтобы сделать документ максимально содержательным.

Вот его историю я бы послушал, такие затраты нервных клеток никакими скриптами не сократить.

Попробуем это реализовать)

Sign up to leave a comment.