Thanks! This is getting better and better:
Modifying my playbook like this:
- name: iterate over hosts
command: ping -c 1 {{ hostvars[item]["ansible_bond1.2108"].ipv4.address }}
with_items: groups.storages
ignore_errors: true
tags: gz
Now I get:
< TASK: swift-proxy | iterate over hosts >
----------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
failed: [ceph0010] => (item=ceph0020) => {"changed": true, "cmd": ["ping",
"-c", "1", "{{hostvars[item][ansible_bond1.2108].ipv4.address}}"], "delta":
"0:00:00.005304", "end": "2014-04-17 17:59:50.851952", "item": "ceph0020",
"rc": 1, "start": "2014-04-17 17:59:50.846648"}
stderr: ping: unknown host
...ignoring
failed: [ceph0010] => (item=ceph0030) => {"changed": true, "cmd": ["ping",
"-c", "1", "{{hostvars[item][ansible_bond1.2108].ipv4.address}}"], "delta":
"0:00:00.005213", "end": "2014-04-17 17:59:51.026424", "item": "ceph0030",
"rc": 1, "start": "2014-04-17 17:59:51.021211"}
stderr: ping: unknown host
...ignoring
failed: [ceph0010] => (item=ceph0040) => {"changed": true, "cmd": ["ping",
"-c", "1", "{{hostvars[item][ansible_bond1.2108].ipv4.address}}"], "delta":
"0:00:00.005305", "end": "2014-04-17 17:59:51.200587", "item": "ceph0040",
"rc": 1, "start": "2014-04-17 17:59:51.195282"}
stderr: ping: unknown host
...ignoring
failed: [ceph0010] => (item=ceph0050) => {"changed": true, "cmd": ["ping",
"-c", "1", "{{hostvars[item][ansible_bond1.2108].ipv4.address}}"], "delta":
"0:00:00.005345", "end": "2014-04-17 17:59:51.374977", "item": "ceph0050",
"rc": 1, "start": "2014-04-17 17:59:51.369632"}
stderr: ping: unknown host
...ignoring
failed: [ceph0010] => (item=ceph0060) => {"changed": true, "cmd": ["ping",
"-c", "1", "{{hostvars[item][ansible_bond1.2108].ipv4.address}}"], "delta":
"0:00:00.005203", "end": "2014-04-17 17:59:51.548855", "item": "ceph0060",
"rc": 1, "start": "2014-04-17 17:59:51.543652"}
stderr: ping: unknown host
...ignoring
Any idea?
Thanks again in advance :)
On Thursday, April 17, 2014 1:52:00 PM UTC+2, Michael DeHaan wrote:
>
> 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]<javascript:>
> > 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]<javascript:>
>> > 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]<javascript:>
>>> > 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] <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/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] <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/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] <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/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/7726916d-59cb-4242-a963-90bc9cb095ad%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.