// DevOps

Как я автоматизировал управление 366 серверами и перестал тратить ночи на рутину

Опубликовано 16.05.2026

Когда у тебя один сервер — заходишь по SSH и делаешь что нужно. Когда их десять — пишешь bash-скрипты. Когда больше трёхсот — либо ты автоматизируешь всё до конца, либо инфраструктура управляет тобой, а не ты ей.

Я прошёл этот путь. Десяток проектов, более 400 серверов в семи странах — Нидерланды, Польша, США, Германия, Индия, Казахстан, Россия. В какой-то момент стало понятно: держать это в голове и тыкать руками уже не получится. Либо система, либо хаос. Я выбрал систему — и теперь новая нода в любой точке мира поднимается за несколько минут без единой SSH-сессии вручную.

Расскажу, как это работает.


Как это выглядело раньше

Запуск нового сервера — это был квест. Открыть SSH, вспомнить (или найти в заметках) нужные команды, выполнить по порядку, забыть прописать что-то в DNS, вернуться, дописать, добавить в мониторинг отдельно, зарегистрировать в панели отдельно. Час-полтора на одну ноду — и это если всё идёт гладко. А ещё каждый раз с ненулевым шансом сделать что-то чуть иначе, чем в прошлый раз.

На масштабе более 400 серверов это уже не просто неудобство. Даже если каждый трогаешь раз в месяц — это сотни часов в год на механическую работу. Плюс инфраструктура постепенно превращается в чёрный ящик: никто толком не помнит, что на каком сервере настроено, почему именно так и кто это делал.


Что внутри

Основа всего — Ansible в связке с Semaphore. Ansible позволяет описывать настройку серверов кодом: написал один раз, запускаешь на любом количестве машин. Semaphore — это простой веб-интерфейс поверх него, чтобы не бегать с терминалом и видеть что происходит в реальном времени.

Весь репозиторий — 49 плейбуков, 39 ролей, 11 inventory-файлов. Плейбук — это сценарий: последовательность шагов для сервера. Роль — переиспользуемый блок логики, скажем “настроить firewall” или “выпустить сертификат”. Inventory — список всех серверов с параметрами: роль, страна, порты, версии сервисов. Вся инфраструктура живёт в git — любое изменение видно в истории, любое состояние воспроизводимо. Когда что-то идёт не так, ответ всегда в коде, а не в голове у человека который “помнит как делал в прошлый раз”.

Каждый сервер несёт роль: обычная нода, edge, шаред, базовая машина, мониторинг. Плейбуки читают эту роль и сами пропускают неподходящие шаги — прокси не получит VPN-стек, шаред-нода не пройдёт полный hardening. Никакой ручной фильтрации.

Inventory устроен иерархически: проект → регион → хост. Нужно поменять параметр для всех нод в Нидерландах — меняешь одну строку. Нужно обновить только один сервер или только конкретный регион — указываешь нужный фильтр при запуске. Никакого дополнительного кода, никакого copy-paste.


Как выглядит деплой изнутри

Запуск новой VPN-ноды — самый показательный пример. Один клик в Semaphore, девять шагов по цепочке, 8–12 минут реального времени. Пока нода разворачивается, я занимаюсь чем-то другим.

Что происходит внутри: сначала проверяется доступность по SSH — незачем запускать цепочку на мёртвый сервер. Потом bootstrap: базовые пакеты, Docker, swap. Следом hardening — закрываются лишние порты, настраивается защита от брутфорса, применяются параметры ядра для оптимизации сети. Дальше копируются конфиги и файлы проекта. Через Cloudflare API выпускаются DNS-запись и SSL-сертификат. Нода регистрируется в панели управления, поднимается Docker-стек. В финале — DNS-записи для балансировки трафика.

Каждый шаг описан кодом и прогнан десятки раз. Вероятность человеческой ошибки стремится к нулю — не потому что люди стали аккуратнее, а потому что человек из этого процесса просто убран.


Детали, которые экономят нервы

Мониторинг добавляется сам. На каждом сервере при provisioning поднимается агент, который регистрирует машину в общем реестре. Prometheus находит новые серверы через этот реестр — никаких статических списков, никакого “не забудь добавить”. Добавил сервер в inventory, запустил плейбук — он уже в метриках. Вывел сервер — отдельный плейбук почистит за ним все записи.

SSL-сертификаты больше не задача. Система сама выпускает их через Cloudflare, поддерживает wildcard и несколько доменов, сама продлевает. Один сервер может выпустить сертификат и передать состояние другим нодам — удобно когда сотня машин работает под одним доменом.

Плейбук сверки состояния. Любая живая инфраструктура рано или поздно расходится с тем, что написано в коде — что-то поправили руками, что-то поехало само. Этот плейбук запрашивает панель управления, сравнивает с inventory, проверяет порты, сверяет правила firewall. На выходе — конкретный отчёт: вот эта нода есть в панели, но не в inventory; вот тут не совпадает профиль; вот тут нет нужного правила. Без этого инструмента такие расхождения копятся незаметно.

Результаты в Telegram. После каждого плейбука прилетает сообщение: сколько хостов обработано, сколько успешно, сколько упало, что именно и ссылка на детали. Обновляешь 50 нод — не нужно сидеть смотреть в экран. Запустил, пошёл заниматься своим, получил итог в телефон.


Про скучные инструменты

Сейчас модно ставить AI-агентов на всё подряд. Я сам активно работаю с AI и понимаю ценность. Но есть задачи, где языковая модель — это не то что нужно. Когда тебе нужен не “умный помощник который разберётся”, а детерминированная система: запустил — получил ровно тот результат, который описал. Без интерпретации, без галлюцинаций, без творческого подхода в 3 ночи на проде.

Ansible скучный. Проверенный. Предсказуемый. Выстроил структуру один раз — и двухсотый сервер настраивается точно так же, как первый. Это и есть инженерия — не когда красиво, а когда работает.


Что в итоге

Цифры простые. Один сервер вручную — 60–90 минут. С автоматизацией — 8–12 минут, и большую часть этого времени я не при делах. На масштабе 366 машин это сотни часов в год, которые раньше уходили на механику.

Но честно — главная ценность не в скорости. Главная ценность в том, что инфраструктура перестала быть чёрным ящиком. Любой сервер в любом проекте настроен одинаково: те же параметры ядра, тот же порядок шагов, те же проверки. Когда что-то идёт не так — ищешь причину в коде, а не пытаешься вспомнить кто что делал руками три недели назад.

И ещё одна деталь, которую начинаешь ценить только когда нужно перезагрузить всю инфраструктуру: rolling reboot. Плейбук перезагружает серверы по одному, ждёт каждый перед следующим. Перезапустить 89 нод проекта — один запуск, без риска положить всё разом. Раньше это была операция на несколько вечеров с постоянным контролем. Сейчас — запустил и забыл.

400 серверов, семь стран — один репозиторий. Не потому что я использовал самый модный инструмент. А потому что выбрал правильный.

// Reviews

Отзывы по теме

Пришел с дорогим запросом по настройке VPS-сервера, но в процессе консультации Михаил предложил гораздо более простое и экономичное решение. В итоге сэкономил бюджет и время. Михаил — настоящий эксперт, который работает на результат клиента, а не на чек. Рекомендую!

Пришел с дорогим запросом по настройке VPS-сервера, но в процессе консультации Михаил предложил гораздо более простое и экономичное решение. В итоге сэкономил бюджет и время. Михаил — настоящий эксперт, который работает …

kfhzasorin

Настройка vps, настройка сервера

12.05.2026 · ★ 5/5

Отличная работа! Очень быстро настроил сервер, установил панель, прописал IP. Однозначно могу порекомендовать!

Отличная работа ! Очень быстро настроил сервер, установил панель прописал IP Однозначно могу по рекомендовать !

fedinseo

Настройка vps, настройка сервера

19.04.2026 · ★ 5/5

Покупатель профи-эксперт

Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. Результатом доволен.

Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. …

abazawolf

Настройка vps, настройка сервера

18.02.2026 · ★ 5/5

// Contact

Нужна помощь?

Свяжись со мной и я помогу решить проблему

Отправить заявку
Написать и получить быстрый ответ