Ansible: Copying different files to different guests for use with the same role
Another approach that I found uses the include_role directive. So instead of the playbook being: 

---
- hosts: M2
  - roles:
    - role: apache2


It becomes:

---
- hosts: M2
  - tasks:
    - include_role: apache2


Then I can add tasks directly after that apache2 task that configure apache2:

---
- hosts: M2
  - tasks:
    - include_role: apache2

    - copy:
        # etc