Thank you for your answer Steve. I have tried you proposition, it is working as expected, dependencies are now imported only once.
But still, I'm looking for a cleaner approach (if possible). Besides, I have some problems with this solution : - There is noise in the logs (with all the "skipping" tasks between rightful imports) - The intensive use of "set_fact" could become a source of problem later, with name collision etc.. - I want to create a project that could be forked by other users, for them to add their roles. And I wanted to limit constraint for them to be integrated in my project. Thank you again for your help, I'll try to find something, and if I can't I'll use your proposition Le vendredi 3 mai 2019 16:18:42 UTC+2, S C Rigler a écrit : > > I'm not sure if it's the best way, but when including roles I'll do > something like: > > - name: Include Some Role if Necessary > include_role: > name: some_role > when: SOME_ROLE_RUN is not defined > > Then as the last task in "some_role" I'll have a task like this: > > - set_fact: > SOME_ROLE_RUN: True > > --Steve > > On Fri, May 3, 2019 at 3:58 AM Bleacks <[email protected] <javascript:>> > wrote: > >> Hello everyone, >> >> (this is my first post BTW, I'll try to be as clear as possible) >> >> I want to include roles dynamically using this bit of code in my >> `playbook.yml` : >> >> tasks: >> - name: "Including roles dynamically" >> remote_user: "{{ target_user }}" >> include_role: >> name: "{{ item }}" >> with_items: "{{ roles_to_install | unique }}" >> >> I have roles like following: >> common >> role1 -> common >> role2 -> role1 >> >> My goal is to always include every role (but I also have another use case >> where I want to specify which roles will be included). >> >> And using this method, if I try with roles_to_install = ['role1', 'role2'] >> These roles will be included : >> - role 2 : 1 time >> - role 1 : 2 times >> - common : 3 times >> >> I searched through issues posted on git repo, I found some which may seem >> duplicates for me, but no solution was provided. (24326 >> <https://github.com/ansible/ansible/issues/24326>, 47374 >> <https://github.com/ansible/ansible/issues/47374> ). >> >> ansible --version: 2.7.10 >> >> I also tried with `allow_duplicates: no` but the problem is not related >> to role inclusion, but to the dependency inclusion. >> >> Do you have an idea of what I could have forgotten? Maybe there is >> another way of treating the problem? >> >> Thank you for your time, >> If you need information I forgot, I'll be glad to add them >> >> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/5c1f6fff-5284-45a0-8d42-20a5d477a2be%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/5c1f6fff-5284-45a0-8d42-20a5d477a2be%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/9ed026da-0cd3-4c39-b2ef-f1814e928b22%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
