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] <javascript:>>
> 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] <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/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].
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/f1605bda-d18d-44e0-a20b-55ac9329a1b6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.