Yeah, I realized that I could try it shortly after firing off this email.
Thanks
On Tuesday, December 9, 2014 6:25:16 PM UTC-5, tkuratomi wrote:
>
> It should, yes. I just tested in your sample repo -- removing the
> dependencies for compA and compB and then adding a new role for
> app-common:
>
> - { role: app-common, when: group == 'compA' or group == 'compB' }
>
> Worked as I expected; app-common was run when GROUP was either compA
> or compB but was skipped for other values of GROUP.
>
> -Toshio
>
> On Tue, Dec 9, 2014 at 2:03 PM, Jamal B <[email protected] <javascript:>>
> wrote:
> > Is it possible to use multiple conditions to activate a role?
> >
> > e.g.)
> > - { role: app-compA, when: group== 'compA' or group== 'compB' }
> >
> > 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]> 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.
>
>
> >>>>> 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.
> >>
> >>
> > --
> > 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/ee5ec7ee-daaa-47d7-be51-3da5aebd66e3%40googlegroups.com.
>
>
> >
> > 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/a648de63-52b0-42bd-b37f-61dd65aa9f7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.