Раз в минуту у нас разворачивается минимум два новых сервера — это 3000+ установок в день. Каждый из них должен запускаться быстро, быть готовым к работе из коробки и иметь актуальные обновления безопасности.
Чтобы держать эту планку, мы пересобрали qcow_builder — наш внутренний конвейер сборки и тестирования образов.
Вот как мы это сделали:
1️⃣ Перешли на cloud-образы вместо установки с ISO
Для большинства Linux-дистрибутивов берем готовые .qcow2 с зеркал вендоров и дорабатываем до своих стандартов. Сборка одного образа теперь занимает 5–15 минут вместо полутора часов. Образы унифицированы с другими облаками: плейбуки, раннеры и привычная автоматизация переносятся к нам без существенных доработок.
2️⃣ Ввели модульный конвейер вместо гигантского скрипта
Теперь сборка устроена из двух частей. Конвейер приводит все диски к единым стандартам, чтобы любая ОС работала у нас одинаково предсказуемо. А роутер отвечает за точечную настройку под конкретное семейство ОС — туда подключаются модули с плейбуками. Так мы быстрее раскатываем новые ОС по вашим запросам.
3️⃣ Добавили единую настройку через Ansible
После сборки диска временный сервер прогоняется через плейбуки. В каждый образ закладываем необходимые для мониторинга юниты и корректные сетевые конфигурации — чтобы потом вам не пришлось доставлять их вручную.
4️⃣ Расширили автотесты до публикации в продакшн
Каждый образ проверяется на реальной виртуальной машине — такой же, как и у вас. Прогоняем сеть, SSH, cloud-init, QEMU Guest Agent, Zabbix-агент и базовые сценарии запуска. Если что-то пошло не так — образ возвращается на доработку и дальше не идет.
В итоге вы получаете сервер, готовый к работе сразу после выбора образа в панели. Под капотом — 58 наших образов на весь стек, от Linux для облачных серверов до сборок под Kubernetes и managed-сервисы.
Платформа нативно работает с cloud-образами и cloud-init — проще переносить существующие проекты, автоматизацию и CI/CD-процессы без лишней адаптации.