role "vars" are scoped to the play, not the role. role "params", which are different than vars, are scoped to the role. `include_role` and `import_role` do not support params, only vars.
On Thu, Jul 11, 2019 at 9:20 AM Andrew Feller <[email protected]> wrote: > 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 > <https://groups.google.com/d/msgid/ansible-project/CAMcshKb%3DJCnfsfM6RxhTNJoHG52CPV0%2BgT_jB6g93shZU2b3_g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Matt Martz @sivel sivel.net -- 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/CAD8N0v-nG9go4VA3k7uvqeGTizt7Oxf0nsTw-eKfvzgRR5Y69w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
