Got it!  This is the problem line:

  command: echo {{ hostvars.{{ item }}.ansible_hostname }}

It should look like this:

{{ hostvars[item].ansible_hostname }}

Basically templates don't nest, and inside of template expressions, you can
just use variables mostly as if they were Python.

Hope that helps!



On Thu, Apr 17, 2014 at 4:16 AM, Sébastien Han <[email protected]>wrote:

> Hello Michael,
>
> Thanks for your response.
>
> What I'm trying to achieve is exactly what is described in this post:
> https://coderwall.com/p/w5o6eq
>
> As an example, I tried the following:
>
> - name: iterate over hosts
>   command: echo {{ hostvars.{{ item }}.ansible_hostname }}
>   with_items:
>     - groups.storages
>   ignore_errors: true
>   tags: gz
>
>
> As far as I understand this is supposed to return every hostname, instead
> I get:
>
> changed: [ceph001.enocloud.com] => (item=groups.storages) => {"changed":
> true, "cmd": ["echo", "{{hostvars.{{item}}.ansible_hostname}}"], "delta":
> "0:00:00.003401", "end": "2014-04-17 10:11:03.764429", "item":
> "groups.storages", "rc": 0, "start": "2014-04-17 10:11:03.761028",
> "stderr": "", "stdout": "{{hostvars.{{item}}.ansible_hostname}}"}
>
> Any idea? Furthermore, the final goal is to collect the ip address of the
> following intertace: ansible_bond1.2108. Not sure if it's reachable given
> this: https://github.com/ansible/ansible/issues/6879
>
> Thanks for your help.
>
> --
> Regards,
> Sébastien Han.
>
>
> On Thu, Apr 17, 2014 at 4:21 AM, Michael DeHaan <[email protected]>wrote:
>
>> Seems like you *might* mean with_nested seeing you are looping over what
>> appears to be two different lists.
>>
>> Or else "groups.storages" is something else.  That looks like the odd one
>> out to me.
>>
>> Everything else looks fine, so when you say "doesn't seem to work", more
>> info would be helpful about how it was not working?
>>
>> Thanks!
>>
>>
>> On Wed, Apr 16, 2014 at 4:42 AM, Sébastien Han 
>> <[email protected]>wrote:
>>
>>> Up?
>>>
>>>
>>> On Monday, April 14, 2014 5:59:15 PM UTC+2, Sébastien Han wrote:
>>>>
>>>> Hello,
>>>>
>>>> I'm trying to loop over a set of host, get their IP and then append the
>>>> result to a file.
>>>>
>>>> Currently the action looks like this:
>>>>
>>>> - name: build rings
>>>>   command: swift-ring-builder {{ item.service }}.builder add z1-{{
>>>> hostvars[inventory_hostname]["ansible_bond1.2108"].ipv4.address }}:{{
>>>> item.port }}/sdb1 100
>>>>            chdir=/etc/swift
>>>>   with_items:
>>>>     - { service: 'account', port: '6002' }
>>>>     - { service: 'container', port: '6001' }
>>>>     - { service: 'object', port: '6000' }
>>>>     - groups.storages
>>>>
>>>> Basically I'd like to look over 'groups.storages' in {{
>>>> hostvars[inventory_hostname]["ansible_bond1.2108"].ipv4.address }.
>>>>
>>>> Is it doable?
>>>>
>>>> This looks like this https://coderwall.com/p/w5o6eq, althought it
>>>> doesn't seem to work with the new convention "{{ }}"
>>>>
>>>> Thanks in advance :).
>>>>
>>>> Cheers!
>>>>
>>>  --
>>> 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/b1d69cd7-8326-4840-a7ae-6e66a528fde4%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/b1d69cd7-8326-4840-a7ae-6e66a528fde4%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 a topic in the
>> Google Groups "Ansible Project" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/ansible-project/vOjMC-FkqAI/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%2BnsWgyChrGymubfmPr22Nb-kXMZGTrbKx8aKhpP3fwnjgxgNQ%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgyChrGymubfmPr22Nb-kXMZGTrbKx8aKhpP3fwnjgxgNQ%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/CAOLwVUkdNJwyJkbU2Hx4a2xHVzNgNt0BgFfiOR44fpEq%2BYwbgg%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CAOLwVUkdNJwyJkbU2Hx4a2xHVzNgNt0BgFfiOR44fpEq%2BYwbgg%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%2BnsWgzJ%2B078kOJgg9FptFQTkp%3D47%2BqCdwKzRYw2bB72xsbJHg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to