Блог Слёрм

Как не дать команде запускать что попало в проде через Ansible

Знакомый сценарий? Внедрили Ansible, автоматизировали всё, а теперь ломаете голову, как бы так сделать, чтобы стажёр по ошибке (или назло) не задеплоил на продакшен код с багом из тестового окружения.

Вопрос разделения прав — один из самых частых у наших студентов. И решить его можно двумя принципиальными путями.

⭐️ Путь 1: Git-центричный. Железная дисциплина и CI/CD

Ansible — это код. А значит, его можно и нужно хранить в Git. Суть подхода:

  • Все плейбуки живут в репозитории. Ветка master/main — священная корова, отвечающая за прод.
  • Права на мерж в master — только у ключевых инженеров (тех самых «бородатых и пожилых»).
  • Все ключи доступа к продакшен-серверам изымаются у рядовых админов и передаются раннеру CI/CD (GitLab CI, Jenkins, GitHub Actions).
  • Запуск плейбука на проде — это только через мерж в master → автоматический запуск пайплайна → деплой.

Что имеем: прода касается только проверенный код через бездушную машину. Человеческий фактор и «ручные» запуски исключены.

⭐️ Путь 2: Инструментальный. AWX/Ansible Tower

Если нужен более тонкий контроль, графический интерфейс, расписание и отчетность — смотрим в сторону AWX (open-source версия Ansible Tower).

  • Единая точка входа: все запуски идут только через его веб-интерфейс или API.
  • Интеграция с LDAP/AD: права на запуск тех или иных плейбуков на тех или иных хостах гибко настраиваются под роли пользователей в компании.
  • Вся магия внутри: AWX сам хранит инвентарь, логины, пароли и SSH-ключи. Пользователи их даже не видят.
  • Бонусы: ведение логов, кто, что и когда запустил, расписание заданий, визуализация выполнения.

Что имеем: мощную систему оркестрации с ролевой моделью доступа, которая не даст вам наступить на грабли.

Первый путь — это строгий контроль через Git и CI, второй — комплексное enterprise-решение с кучей плюшек. Оба защитят ваш прод от хаоса и «зловредной деятельности» команды. А какой подход ближе вам?

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