On Wed, Sep 24, 2014 at 1:53 PM, James Morgan <[email protected]> wrote:
> Hi, > > I see you point and I guess it should be improve the execution time to > define a role once before the others rather than having each role check its > dependency even if it is idempotent. > > I think the idea was that each role would be more encapsulated and that it > ought to define the dependencies instead of somebody else having to work it > out. > There is already the "allow_duplicates" setting in Ansible that will prevent a role from being loaded more than once, if called from the same parameters. This should apply within the same play. > > I solved my initial problem by ensuring that all my shared roles reference > the directory they were packaged in. Instead of defining it in the project > that imports it. > > All works fine and yes the tagging works perfectly. > > Will look to reduce the role dependencies. > > Thanks for your help > > James > > On 24 September 2014 17:25, Michael DeHaan <[email protected]> wrote: > >> It's beside the point, but I really don't like role dependencies in >> ansible - they were needed to end particular academic mailing list >> discussions about composability, and I think they are appropriate in some >> cases, but in *MOST* cases they overcomplicate setup. >> >> It would usually be easier to just list roles that need to run first >> ahead of other roles, and that way the list is more clearly shown in the >> playbook, rather than somewhat obfuscated in terms of order. Still, they >> aren't going away. >> >> All being said, tagging a role should tag the dependent roles - if that >> appears to not be working, definitely file a bug on GitHub for it. >> >> >> >> On Tue, Sep 23, 2014 at 2:15 PM, James Morgan <[email protected]> >> wrote: >> >>> The folder the roles get added to was created as part of the build >>> process in Maven. >>> >>> I had a think and decided that if I move that back into Ansible and >>> reference it in all the role dependencies then it should work >>> >>> I originally wanted to let the calling ansible project dictate the >>> structure of the shared roles but I think doing this makes sense >>> >>> Open to all suggestions >>> >>> Thanks >>> >>> On 23 September 2014 18:23, James Morgan <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> I'm currently trying this but running into some problems. >>>> >>>> My plan is to package groups of roles then include them with the >>>> project playbooks and roles. >>>> >>>> i.e >>>> >>>> roles/role1/ >>>> roles/role2/ >>>> roles/projectA/role3 >>>> roles/projectA/role4 >>>> roles/projectA/role5 >>>> ... >>>> >>>> The issue I have found is that, whilst I can reference projectA/role3 >>>> >>>> --- >>>> dependencies: >>>> - { role: projectA/role3 } >>>> >>>> If projectA/role3 has dependencies that are relative to its directory >>>> they aren't found. >>>> >>>> My thinking at the moment is to package every role in the roles >>>> directory and forego nested directory structure but its not as clean >>>> >>>> I have many projects and a growing number of common role packages I >>>> need to share. >>>> >>>> I'm free to move things around if that helps >>>> >>>> Any help most appreciated. >>>> >>>> James >>>> >>>> On Monday, 23 September 2013 17:01:49 UTC+1, James Cammarata wrote: >>>>> >>>>> Yes, it's perfectly valid to pass a path as the role name, which >>>>> allows you to more easily keep a common directory for your roles rather >>>>> than requiring they be located in the same directory as the playbook. >>>>> >>>>> >>>>> On Mon, Sep 23, 2013 at 10:23 AM, Dan <[email protected]> wrote: >>>>> >>>>>> Hey, >>>>>> >>>>>> I noticed that I can create roles inside roles in dirs of roles. >>>>>> >>>>>> For example I can have the following structure: >>>>>> - roles/php5-fpm >>>>>> - roles/php5-fpm/pool >>>>>> >>>>>> And then, inside a playbook I can do: >>>>>> >>>>>> Roles: >>>>>> - { role: php5-fpm, var1=something, var2=something } >>>>>> - { role: php5-fpm/pool, var3=asdasd } >>>>>> >>>>>> Such structure seems really logical for me. >>>>>> Using that structure I can also share tasks. >>>>>> >>>>>> For example in /roles/php5-fpm/handlers/main.yml I can do: >>>>>> include: ../handlers/main.yml >>>>>> >>>>>> And that way I won't need to rewrite some stuff... >>>>>> >>>>>> I didn't see it documented anywhere, so I'm curious, will it be a >>>>>> good practice to use such structure? >>>>>> >>>>>> Thanks. >>>>>> >>>>>> -- >>>>>> 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]. >>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> James Cammarata <[email protected]> >>>>> Sr. Software Engineer, AnsibleWorks, Inc. >>>>> http://www.ansibleworks.com/ >>>>> >>>> -- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "Ansible Project" group. >>>> To unsubscribe from this topic, visit >>>> https://groups.google.com/d/topic/ansible-project/2as7VmaoHXY/unsubscribe >>>> . >>>> To unsubscribe from this group and all its topics, 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/5bed79dd-4fa0-42e6-9c04-d82a7df3d35a%40googlegroups.com >>>> <https://groups.google.com/d/msgid/ansible-project/5bed79dd-4fa0-42e6-9c04-d82a7df3d35a%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/CAGU9yvTfUm7JOj8JTV8WrXSD2o0nb31rtyBUUx0dpX5_Ev6BBA%40mail.gmail.com >>> <https://groups.google.com/d/msgid/ansible-project/CAGU9yvTfUm7JOj8JTV8WrXSD2o0nb31rtyBUUx0dpX5_Ev6BBA%40mail.gmail.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 a topic in the >> Google Groups "Ansible Project" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/ansible-project/2as7VmaoHXY/unsubscribe >> . >> To unsubscribe from this group and all its topics, 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/CA%2BnsWgy0UsGcJkPc2R43dGGmAx1tDwULzehY%2BROmoC6dPpU0rg%40mail.gmail.com >> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgy0UsGcJkPc2R43dGGmAx1tDwULzehY%2BROmoC6dPpU0rg%40mail.gmail.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/CAGU9yvR8yFWZ8_%2B_9hsDt7Ey0oZ5dTqz-THiontL5bJd6mSd-A%40mail.gmail.com > <https://groups.google.com/d/msgid/ansible-project/CAGU9yvR8yFWZ8_%2B_9hsDt7Ey0oZ5dTqz-THiontL5bJd6mSd-A%40mail.gmail.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/CA%2BnsWgysCjezbj_bnYjdHKDrchp8NYEdzd6%3DpMPF9GTsTG%2BvJA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
