Found the problem was with the key,value passing in the role dependencies:
# roles/appserver/meta/main.yml
---
dependencies:
- { role: managed_interface, tags=initial }
Should actually be
# roles/appserver/meta/main.yml
---
dependencies:
- { role: managed_interface, tags: ['initial'] }
Everything works as expected once replaced.
On Wednesday, September 24, 2014 12:38:24 PM UTC-7, E.C. Raymond wrote:
>
> Thanks, Michael. One question about this bug/behavior, I want to verify.
> If tags are applied at the role level, is it supposed to run each role,
> regardless of the when statement?
>
> roles:
> - { role: appserver, tags: ['initial'], when:
> "'APPSERVERS' in ansible_local.host_roles.roles" }
> - { role: hadoop_jobtracker, tags: ['initial'], when:
> "'HADOOP_JOBTRACKER' in ansible_local.host_roles.roles" }
>
> In this case, both appserver and the hadoop_jobtracker roles are applied,
> disregarding my when statement. Do tags take precendence over other logic?
>
> I am able to workaround this bug by adding an include statement in the
> tasks for each role, and everything works properly.
>
> On Wednesday, September 24, 2014 11:30:37 AM UTC-7, Michael DeHaan wrote:
>>
>> Ok, please file a bug about this, that the when statements need to be
>> propagated to the role deps.
>>
>> Thanks!
>>
>>
>>
>> On Wed, Sep 24, 2014 at 12:41 PM, E.C. Raymond <[email protected]> wrote:
>>
>>> Hi Michael,
>>>
>>> I am using 1.7.1, and tried on latest devel build.
>>>
>>> On Tuesday, September 23, 2014 6:57:02 PM UTC-7, Michael DeHaan wrote:
>>>>
>>>> For starters, can you share what version of Ansible you are using?
>>>>
>>>> Thanks!
>>>>
>>>>
>>>>
>>>> On Tue, Sep 23, 2014 at 6:24 PM, E.C. Raymond <[email protected]> wrote:
>>>>
>>>>> I am experiencing some strange behavior from what I understand to be
>>>>> applying tags to roles/dependencies. I wrote a facts plugin to gather
>>>>> information about a systems role, and it includes this in the playbook
>>>>> run. Each system runs a playbook on its own, only managing itself.
>>>>>
>>>>> # ansible_local facts
>>>>> 127.0.0.1 | success >> {
>>>>> "ansible_facts": {
>>>>> "ansible_local": {
>>>>> "host_roles": {
>>>>> "roles": [
>>>>> "APPSERVERS",
>>>>> "COMMON",
>>>>>
>>>>> ]
>>>>> }
>>>>> }
>>>>> },
>>>>> "changed": false
>>>>> }
>>>>>
>>>>> # site.yml
>>>>> ---
>>>>> - hosts: 127.0.0.1
>>>>> connection: local
>>>>> gather_facts: yes
>>>>> sudo: yes
>>>>>
>>>>> roles:
>>>>> - { role: appserver, , when: "'APPSERVERS' in
>>>>> ansible_local.host_roles.roles" }
>>>>> - { role: hadoop_jobtracker, when: "'HADOOP_JOBTRACKER' in
>>>>> ansible_local.host_roles.roles" }
>>>>>
>>>>>
>>>>> # roles/appserver/meta/main.yml
>>>>> ---
>>>>> dependencies:
>>>>> - { role: managed_interface, tags=initial }
>>>>>
>>>>> This is the simplified output of my setup. I have a server that is
>>>>> acting with a local run of a playbook, and gathers its roles, and then
>>>>> grabs the dependencies from its role to call the manage_interface role
>>>>> when
>>>>> its tagged as initial.
>>>>>
>>>>> # command line
>>>>> ansible-playbook site.yml --tags "initial"
>>>>>
>>>>> The command runs only its tasks/main.yml and not the dependencies.
>>>>>
>>>>> When I tried applying at the site.yml level things got really weird.
>>>>> It runs both the appserver and hadoop_jobtracker roles, seemingiy
>>>>> ignoring
>>>>> the "when" statements.
>>>>>
>>>>> roles:
>>>>> - { role: appserver, tags: ['initial'], when:
>>>>> "'APPSERVERS' in ansible_local.host_roles.roles" }
>>>>> - { role: hadoop_jobtracker, tags: ['initial'], when:
>>>>> "'HADOOP_JOBTRACKER' in ansible_local.host_roles.roles" }
>>>>>
>>>>> Are there some rules in which these can be applied properly, or am I
>>>>> hacking at the system and making trouble again?
>>>>>
>>>>> --
>>>>> 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/dac2a7a2-a8d7-40b8-b00d-
>>>>> 2801ff9289a2%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/ansible-project/dac2a7a2-a8d7-40b8-b00d-2801ff9289a2%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/5e108fbe-0775-4b6f-86d0-b171c05660f1%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/ansible-project/5e108fbe-0775-4b6f-86d0-b171c05660f1%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/d3bec37e-7ed2-42d7-9383-83ebbb55bf12%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.