Ansible Pattern: Meta Role

This pattern is used to provide a quick way to include multiple roles at once. For example if you have a group of things that every server needs, you could use a meta role to include those things with one line.

So lets say you have three roles for every machine named users, ssh and logs_to_syslog_server. You can include them all by making a role named common. In that common role you make a file named meta/main.yml and put the following contents in it.

---
dependencies:
  - role: users
  - role: ssh
  - role: logs_to_syslog_server

The on every host you simply add the common role.

roles:
  - role: common
    tags: [common]

and suddenly you get all the common roles. You can also run with -t common to run all the common rules. This is handy if something global to your infrastructure is updated and you would like all hosts to receive the update.