Hi all,
I have a bunch of nested roles for a specific project.
I’m trying to dynamically invoked roles based on variable I have in the inventory.
For example, let’s say I have a foo variable that is defined for every hosts, the following will fail:
#roles/A/meta.yml
dependencies:
- { role: “B/{{foo}}” }
I would expect that it would load the roles in roles/B/, but rather I have the following error:
ERROR! ‘foo’ is undefined.
Strange things, If I invoke foo as a play variable like this:
- hosts: srv
gather_facts: True
vars:
foo: “bar”
roles: - { role: A }
It correctly loads and execute roles/B/bar…
So it seems to not expand inventory variable when passing them to “role” directive… Is this an expected behavior ? Is there any workaround ? This is kind of annoying because I wanted to dynamically load roles based on inventory variables rather than relying on conditional include using plenty of “when:” statement in the meta directive…
Best regards,
Lionel.