Once playbooks grow, the same nginx or user setup gets copied between them and starts to diverge. A role packages tasks, handlers, templates and default variables for one component in a fixed folder layout. Reach for roles when several playbooks or teams configure the same thing, such as 20 services that all need nginx. A short one-off playbook does not need to be split into roles.