Как организовать транзитивность в Ansible playbook

«Как организовать транзитивность в Ansible playbook» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для организации транзитивности в Ansible используйте import_playbook или include_tasks.

Пример:

# main.yml  
- import_playbook: common.yml  
- import_playbook: webservers.yml  

Нюансы:

  • import_playbook выполняется статически (при парсинге), а include_tasks — динамически (во время выполнения).
  • Переменные и теги транзитивны при импорте, но include_tasks может зависеть от условий выполнения.

Пример с условием:

- include_tasks: setup_db.yml  
  when: db_required  

Используйте import_* для общих настроек, include_* для гибкости.