Since version 1.3, Ansible has supported role dependencies to encourage reuse of role definitions. To audit and maintain larger orchestrations, it would be nice to have some way to easily generate a dependency graph of which roles depend on which other roles.
An example of dependency definitions might be roles/app_node/meta/main.yml
:
---
dependencies:
- { role: common, some_parameter: 3 }
- { role: apache, port: 80 }
- { role: postgres_client,
dbname: blarg,
other_parameter: 12 }
where roles/postgres_client/meta/main.yml
might include something like
---
dependencies:
- { role: postgres_common }
- { role: stunnel,
client: yes,
local_port: 5432
remote_host: db_host
remote_port: 15432
}
Such nested dependencies can get messy to maintain when the number of roles in an orchestration grows. I therefore wonder if anyone has found an easy way to generate a graph of such dependencies, either graphically (dot or neato?) or just as an indented text graph? Such a tool could help reduce the maintenance complexity.