Используешь ли Ansible роли
Что проверяют
Пишете ли вы плейбуки простынёй на тысячу строк или умеете раскладывать автоматизацию на переиспользуемые части. Следом обычно спрашивают про приоритет переменных и про то, как вы тестируете роли.
Как отвечать
Опирайте ответ на свои роли: что они настраивали, сколько хостов обслуживали, кто ещё ими пользовался. Технический каркас такой.
Роль это каталог с фиксированной структурой, заготовку создаёт ansible-galaxy role init:
tasks/main.yml: основные задачи;handlers/: обработчики, например перезапуск сервиса только при изменении конфига;defaults/main.yml: переменные с самым низким приоритетом, всё, что пользователь роли может переопределить;vars/main.yml: внутренние переменные с высоким приоритетом, инвентарь их не перебьёт;templates/иfiles/: шаблоны Jinja2 и статические файлы;meta/main.yml: зависимости и метаданные для Galaxy.
Подключение: roles: в плее, либо import_role (статически, на этапе разбора) и include_role (динамически, в момент выполнения, можно в цикле и с условием). Внешние роли и коллекции фиксируются в requirements.yml с версиями и ставятся через ansible-galaxy install -r requirements.yml.
Качество: переменные с префиксом имени роли (nginx_port, а не port), идемпотентность (второй прогон даёт changed=0), проверка ansible-lint и тесты в Molecule на контейнерах.
Если ролей вы не писали и работали плейбуками, так и скажите, и опишите, как разложили бы свой плейбук на роли.
Где спотыкаются
Кладут настраиваемые значения в vars/. Потом их нельзя переопределить через group_vars, и роль перестаёт быть переиспользуемой.
Пишут всё через shell и command. Задачи отмечаются изменёнными на каждом прогоне, handlers срабатывают зря, идемпотентность теряется. Сначала ищите готовый модуль.
Не фиксируют версии в requirements.yml. Обновление внешней роли однажды молча меняет конфигурацию всех серверов.