Первый playbook Ansible: поднять новый сервер без ручной рутины
Ситуация
Вчера мне снова пришлось заходить на свежий VPS по SSH.
Знакомый сценарий: apt update, создать пользователя, настроить ключи, закинуть fail2ban.
Каждый раз одно и то же. Руки чешутся автоматизировать.
Предыстория
Раньше я поднимал серверы вручную. Десять команд, пятнадцать минут работы.
Но когда у тебя пять проектов, а серверов стало двадцать, рутина начинает затягивать.
Я забывал отключать парольную аутентификацию. Однажды из-за этого на серве завелся брутфорс.
Проблема
Ручная настройка — источник ошибок. Пропустил строчку в конфиге SSH — дыра в безопасности.
Каждый сервер уникален, если делать вручную. Но он не должен быть уникальным.
Однотипные операции отнимают время, которое можно потратить на архитектуру.
Почему это важно
Время простоя и утечки данных стоят денег. Клиент платит за стабильность, а не за то, что ты вводишь команды.
Автоматизация первичной настройки — это база. Без неё любой новый сервер — это риск.
Команда тратит часы на однотипные действия вместо реальных задач.
Если сервер настраивается дольше трёх команд — значит, ты делаешь что-то не так.
Решение
Я написал стартовый playbook Ansible. Он делает всё, что нужно новому VPS:
- 🚀 Обновляет систему (apt update + upgrade)
- 👤 Создаёт пользователя с sudo-доступом
- 🔑 Копирует SSH-ключи и отключает парольный вход
- 🔒 Устанавливает fail2ban и UFW
- 📦 Ставит базовый набор пакетов (curl, htop, git, ufw)
Playbook запускается одной командой: ansible-playbook init.yml
Он идемпотентен — можно перезапускать без последствий.
Всё, что нужно указать — IP сервера и имя пользователя.
Результат
Теперь поднятие нового сервера занимает ровно 30 секунд.
Я не забываю про fail2ban. UFW настроен сразу. Парольный вход заблокирован.
Команда использует этот playbook как шаблон для всех проектов.
Рутины стало меньше. Больше времени на полезные вещи.
📬 Зв'яжіться з нами
Бажаєте впровадити це у своєму бізнесі? Пишіть нам!
- 📧 Email: [email protected]
- 🌐 Сайт: 1it.pro
- 📝 Блог: blog.1it.pro