Есть ли опыт работы с Terraform и Ansible?
Что проверяют
Для Python-разработчика это вопрос о том, можете ли вы сами довести сервис до окружения и понимаете ли, как устроена инфраструктура вокруг кода. Следом просят объяснить разницу между инструментами и рассказать, где хранился стейт Terraform.
Как отвечать
Начните с разделения ролей, это главное:
- Terraform: декларативно создаёт инфраструктуру через API облака: сети, виртуальные машины, managed-базы, бакеты. Цикл
terraform planиterraform apply, переиспользование через модули, провайдеры под каждое облако; - стейт: Terraform хранит соответствие кода и реальных ресурсов в
terraform.tfstate. В команде его держат в удалённом бэкенде с блокировкой, а не в git: там бывают секреты, а два одновременныхapplyего портят; - Ansible: настраивает уже созданные машины. Работает без агента по SSH, плейбуки на YAML, инвентарь с группами хостов, роли. Модули идемпотентны, повторный прогон ничего не меняет, а
--check --diffпоказывает, что изменится; - лицензия: с 2023 года Terraform распространяется под BSL, открытый форк OpenTofu совместим с ним по синтаксису.
Мост к Python: Ansible сам написан на Python, свои модули, фильтры и динамический инвентарь пишутся на нём же. Если инфраструктуру хочется описывать прямо на Python, есть Pulumi.
Опыт рассказывайте своими примерами: что поднимали, в каком облаке, сколько окружений, что пошло не так. Цифры берите реальные, а не «ускорили на 70%». Если опыта нет, скажите честно и покажите смежное: Docker, Compose, пайплайн в GitLab CI, чтение чужих модулей Terraform на ревью. Добавьте, что понимаете модель инструментов и готовы быстро разобраться.
Где спотыкаются
Путают назначение. Terraform умеет запускать скрипты на машинах, а Ansible создавать ресурсы в облаке, но основные роли у них ровно обратные, и путаница выглядит как незнание основ.
Не знают про стейт или коммитят его в репозиторий. Это первый уточняющий вопрос, и на нём видно, был ли опыт в команде.
В Ansible всё делают через shell и command. Идемпотентность пропадает, и повторный прогон начинает ломать то, что уже работало.