Ok. Thanks
On Monday, December 8, 2014 11:47:36 AM UTC-5, James Cammarata wrote: > > Hi Jamal, > > We actually have an open issue for this currently: > https://github.com/ansible/ansible/issues/9292. For now the work-around > is to avoid the "diamond" pattern for roles, where the dependent roles with > multiple parents use conditionals or tags. > > Thanks! > > On Mon, Dec 8, 2014 at 8:03 AM, Jamal B <[email protected] <javascript:>> > wrote: > >> Here you go. >> >> https://github.com/jmal98/ansible-role-dep-example >> >> My test env: >> root@01e437db9a4c:/role-execution# ansible --version >> ansible 1.7.2 >> >> root@01e437db9a4c:/role-execution# export GROUP=compA >> root@01e437db9a4c:/role-execution# ansible-playbook site.yml -c local >> >> PLAY [all] >> ******************************************************************** >> >> GATHERING FACTS >> *************************************************************** >> ok: [127.0.0.1] >> >> TASK: [core | Do some common work] >> ******************************************** >> ok: [127.0.0.1] => { >> "msg": "Did some common work." >> } >> >> TASK: [app-common | Do some app-common work] >> ********************************** >> ok: [127.0.0.1] => { >> "msg": "Did some app-common work." >> } >> >> TASK: [app-compA | Do some app-compA work] >> ************************************ >> ok: [127.0.0.1] => { >> "msg": "Did some app-compA work." >> } >> >> TASK: [app-compB | Do some app-compB work] >> ************************************ >> skipping: [127.0.0.1] >> >> PLAY RECAP >> ******************************************************************** >> 127.0.0.1 : ok=4 changed=0 unreachable=0 >> failed=0 >> >> >> >> root@01e437db9a4c:/role-execution# export GROUP=compB >> root@01e437db9a4c:/role-execution# ansible-playbook site.yml -c local >> >> PLAY [all] >> ******************************************************************** >> >> GATHERING FACTS >> *************************************************************** >> ok: [127.0.0.1] >> >> TASK: [core | Do some common work] >> ******************************************** >> ok: [127.0.0.1] => { >> "msg": "Did some common work." >> } >> >> TASK: [app-common | Do some app-common work] >> ********************************** >> skipping: [127.0.0.1] >> >> TASK: [app-compA | Do some app-compA work] >> ************************************ >> skipping: [127.0.0.1] >> >> TASK: [app-compB | Do some app-compB work] >> ************************************ >> ok: [127.0.0.1] => { >> "msg": "Did some app-compB work." >> } >> >> PLAY RECAP >> ******************************************************************** >> 127.0.0.1 : ok=3 changed=0 unreachable=0 >> failed=0 >> >> >> >> >> >> On Sunday, December 7, 2014 4:38:54 PM UTC-5, Michael DeHaan wrote: >>> >>> Hard to see with the way it's written above, do you perhaps have a >>> bare-minimum repo to share? >>> >>> >>> >>> On Sat, Dec 6, 2014 at 1:17 PM, Jamal B <[email protected]> wrote: >>> >>>> Hi I have run into an issue where I'm not sure if it's a bug in Ansible >>>> or just my lack of understand how roles are activated. Using Ansible >>>> 1.7.2, >>>> I have a playbook defined as such: >>>> >>>> app/site.yml >>>> app/roles/core/tasks/main.yml >>>> app/roles/app-common/tasks/main.yml >>>> app/roles/app-compA/meta/main.yml -> contains a dependency on >>>> app-common >>>> app/roles/app-compA/tasks/main.yml >>>> app/roles/app-compB/meta/main.yml -> contains a dependency on >>>> app-common >>>> app/roles/app-compB/tasks/main.yml >>>> >>>> Where site.yml activates roles like such: >>>> >>>> - hosts: all >>>> vars: >>>> home: /usr/local/app >>>> release: "{{ lookup('env','RELEASE') }}" >>>> group: "{{ lookup('env','GROUP') }}" >>>> >>>> roles: >>>> - core >>>> >>>> # Component Specific Stuff >>>> - { role: app-compA, when: group== 'compA' } >>>> - { role: app-compB, when: group== 'compB' } >>>> >>>> >>>> When I run the playbook like so: >>>> export GROUP=compA >>>> ansible-playbook site.yml -c local >>>> >>>> The roles core, app-common & app-compA execute like expected. >>>> >>>> However when I run the playbook like so: >>>> export GROUP=compB >>>> ansible-playbook site.yml -c local >>>> >>>> Only the roles core and app-compB are executed and the app-common role >>>> is not executed. Shouldn't the app-common role also be executed in this >>>> case? Is this a bug or have I mis-understood how roles are executed when >>>> role dependencies exists? My intent was to minimize the duplication of >>>> the >>>> tasks defined in app-common that are required by the app-compA & app-compB >>>> roles, so if there is another way to do this I'm all ears. >>>> >>>> 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]. >>>> 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/3754460d-d331-4f22-bc8c- >>>> 318abf8a7d7c%40googlegroups.com >>>> <https://groups.google.com/d/msgid/ansible-project/3754460d-d331-4f22-bc8c-318abf8a7d7c%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] <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/f1605bda-d18d-44e0-a20b-55ac9329a1b6%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ansible-project/f1605bda-d18d-44e0-a20b-55ac9329a1b6%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/53ddbdd5-564d-43a5-9884-a9bd8aa80ec6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
