title: Ansible best practice do not repeat common role
body: <p>On the Ansible best practices page: <a href="http://docs.ansible.com/ansible/playbooks_best_practices.html#top-level-playbooks-are-separated-by-role">http://docs.ansible.com/ansible/playbooks_best_practices.html#top-level-playbooks-are-separated-by-role</a> it shows an example where the master playbook site.yml includes a couple of other top-level playbooks webservers.yml and dbservers.yml. Within those playbooks they each include the common role. Some inventory files I have all my groups run on one single host. Another inventory file I have a host per group. For the case where ever group is on one host, if I run site.yml you can see that the common role is getting played twice, one for webservers.yml and one for dbservers.yml.</p>
  
  <p>What is a solution to avoid this? I guess you can take out the common role from webservers.yml and dbservers.yml and instead within site.yml have a task that targets both with the common role. But then I can not individually provision a webserver or dbserver with common.</p>