Module — единица действия (apt, copy, service): исполняемый код, который task вызывает через ansible.builtin.*. Role — пакет задач, handlers, templates, defaults/vars для переиспользования целого сценария.
Разбор
- Modules живут в коллекциях; roles — в
roles/ или Galaxy.
- Task почти всегда вызывает module.
- Role подключают
roles: или include_role.
- Не изобретайте shell-модуль там, где есть специализированный.
Итог
Module = глагол; role = готовый сценарий из многих глаголов.