Ah, so the documentation in this regard might be very literal where the role variables are only available to the playbook and not the role importing the role:
This option dictates whether the role's vars and defaults are exposed to > the playbook. If set to yes the variables will be available to tasks > following the include_role task. This functionality differs from standard > variable exposure for roles listed under the roles header or import_role > as they are exposed at playbook parsing time, and available to earlier > roles and tasks as well. > You might look more at source code with the variable manager <https://github.com/ansible/ansible/blob/devel/lib/ansible/vars/manager.py#L196> to see where your issue might be as I wasn't considering this particular case in your initial question; I thought you were talking about a role listing another as a dependency via meta/main.yml <https://docs.ansible.com/ansible/latest/reference_appendices/galaxy.html#dependencies> On Thu, Jul 11, 2019 at 6:36 AM Shashank Dutt Jha <[email protected]> wrote: > Yeah, I will assume so. > > But the confusing was > https://docs.ansible.com/ansible/latest/modules/include_role_module.html > > The public option while including role that is described as > This option dictates whether the role's vars and defaults are exposed to > the playbook. If set to yes the variables will be available to tasks > following the include_role task. This functionality differs from standard > variable exposure for roles listed under the rolesheader or import_role as > they are exposed at playbook parsing time, and available to earlier roles > and tasks as well. > > > > On Thursday, 11 July 2019 15:11:26 UTC+5:30, Andrew Feller wrote: >> >> This behavior is expected. >> >> The variables defined in Role A should be scoped for A unless defined >> within your inventory or any of the other places outside the role that >> variables are defined. >> >> If variables from a role were implicitly available broadly through their >> declaration, you can have nasty side effects and potential security >> problems. >> >> Recommend looking at >> https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html >> for >> more info. >> >> Sent from my iPhone >> >> On Jul 11, 2019, at 2:47 AM, Shashank Dutt Jha <[email protected]> >> wrote: >> >> I have defined a role : say A >> another role B which includes role A >> >> in role B when I try to use variables defined in A, I get var undefined >> error. >> >> I tried using public: yes when including role A. Still same issue. >> >> This is correct behaviour? >> >> Or I should be able to use variables defined in a role in my tasks/ role >> tasks after including it? >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ansible Project" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/705f9907-6f37-49f6-9372-aad55d12fc4c%40googlegroups.com >> <https://groups.google.com/d/msgid/ansible-project/705f9907-6f37-49f6-9372-aad55d12fc4c%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> >> -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/2693cf44-e414-4227-bb7d-d790da3e3722%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/2693cf44-e414-4227-bb7d-d790da3e3722%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAMcshKb%3DJCnfsfM6RxhTNJoHG52CPV0%2BgT_jB6g93shZU2b3_g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
