Hi Matt,

I just wanted to say that it worked perfectly as you said.

The correct format is:

"{{ hostvars[inventory_hostname]['ansible_bond0.11']['ipv4']['address'] }}"

Thank you very much.
J.

--



On Wed, Nov 5, 2014 at 11:12 PM, Matt Martz <[email protected]> wrote:

> According to that error, you have not defined a variable called
> 'ansible_host'.   Where is that variable supposed to be coming from?
>
> The variable that ansible creates that references the current host is
> called inventory_hostname.  Perhaps you were meaning ansible_hostname?
>
> In either case inventory_hostname is safer to use, as that is what ansible
> knows about from the inventory, and ansible_hostname is not necessarily the
> same value as inventory_hostname.
>
> On Wed, Nov 5, 2014 at 4:06 PM, Joel Sdc <[email protected]> wrote:
>
>> Hi Michael,
>>
>> Just tried, same problem...
>>
>> "{{ hostvars[ansible_host]['ansible_bond0.11']['ipv4']['address'] }}":
>>
>> fatal: [testserver1] => {'msg': "AnsibleUndefinedVariable: One or more
>> undefined variables: 'ansible_host' is undefined", 'failed': True}
>> fatal: [testserver1] => {'msg': "AnsibleUndefinedVariable: One or more
>> undefined variables: 'ansible_host' is undefined", 'failed': True}
>> fatal: [testserver2] => {'msg': "AnsibleUndefinedVariable: One or more
>> undefined variables: 'ansible_host' is undefined", 'failed': True}
>> fatal: [testserver2] => {'msg': "AnsibleUndefinedVariable: One or more
>> undefined variables: 'ansible_host' is undefined", 'failed': True}
>>
>> FATAL: all hosts have already failed -- aborting
>>
>> Just in case, tried this one also:
>>
>> "{{ hostvars['ansible_host']['ansible_bond0.11']['ipv4']['address'] }}"
>>
>> fatal: [testserver1] => {'msg': 'AnsibleError: host not found:
>> ansible_host', 'failed': True}
>> fatal: [testserver1] => {'msg': 'AnsibleError: host not found:
>> ansible_host', 'failed': True}
>> fatal: [testserver2] => {'msg': 'AnsibleError: host not found:
>> ansible_host', 'failed': True}
>> fatal: [testserver2] => {'msg': 'AnsibleError: host not found:
>> ansible_host', 'failed': True}
>>
>> FATAL: all hosts have already failed -- aborting
>>
>>
>>
>> Any other ideas?
>>
>> Thank you!
>>
>> J.
>>
>> On Wednesday, November 5, 2014 3:14:21 PM UTC+1, Michael DeHaan wrote:
>>>
>>> >> "{{ hostvars[{{ ansible_host }}]['ansible_bond0.11']['ipv4']['address']
>>> }}"
>>>
>>> You'll want to remove the template stuff inside the template stuff:
>>>
>>> "{{ hostvars[ansible_host]['ansible_bond0.11']['ipv4']['address'] }}"
>>>
>>>
>>> On Tue, Nov 4, 2014 at 5:25 PM, Joel Sdc <[email protected]> wrote:
>>>
>>>> Hi Matt,
>>>>
>>>> Would this be valid?
>>>>
>>>> "{{ hostvars[{{ ansible_host }}]['ansible_bond0.11']['ipv4']['address']
>>>> }}"
>>>>
>>>> This is the playbook:
>>>>
>>>> ---
>>>> - name: Setup SNMP on testservers
>>>>   hosts: testservers
>>>>   roles:
>>>>     - { role: snmp, snmp_rocommunity: comtestsrv, snmp_listen_ip: "{{
>>>> ansible_bond0.11['ipv4']['address'] }}" }
>>>>
>>>>
>>>> And then:
>>>>
>>>> # cat templates/snmpd.conf.j2
>>>>
>>>> # {{ ansible_managed }}
>>>> agentAddress  udp:{{ snmp_listen_ip }}:161
>>>> {% for server in snmp_authorized_hosts %}
>>>> rocommunity {{ snmp_rocommunity }} {{ server.ip }}/32
>>>> {% endfor %}
>>>> syslocation {{ snmp_syslocation }}
>>>> syscontact {{ snmp_syscontact }} <{{ snmp_syscontact_email }}>
>>>>
>>>>
>>>> testservers is a group with testserver1 and testserver2, so the
>>>> "snmp_listen_ip" would be the bond0.11 IPv4 address for each host when
>>>> creating the snmpd.conf file.
>>>>
>>>>
>>>> I also tried:
>>>>
>>>> "{{ ['ansible_bond0.11']['ipv4']['address'] }}"
>>>> "{{ ansible_bond0.11['ipv4']['address'] }}"
>>>>
>>>> But they also failed..
>>>>
>>>>
>>>> Thanks again!
>>>> J.
>>>>
>>>>
>>>>
>>>> On Tue, Nov 4, 2014 at 9:21 PM, Matt Martz <[email protected]> wrote:
>>>>
>>>>> To use a hostvar that contains a '.' you will need to do something
>>>>> such as:
>>>>>
>>>>> {{ hostvars[inventory_hostname]['ansible_bond0.11']['ipv4']['address']
>>>>> }}
>>>>>
>>>>> On Tue, Nov 4, 2014 at 1:51 PM, Joel Sdc <[email protected]> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I am using Ansible v1.7.1.
>>>>>>
>>>>>> I am having trouble using the gathered facts when an interface has
>>>>>> bonding and VLANs enabled:
>>>>>>
>>>>>> # ansible -m setup testserver
>>>>>>
>>>>>> [...]
>>>>>>         "ansible_bond0.11": {
>>>>>>             "active": true,
>>>>>>             "device": "bond0.11",
>>>>>>             "ipv4": {
>>>>>>                 "address": "192.168.11.66",
>>>>>>                 "netmask": "255.255.255.0",
>>>>>>                 "network": "192.168.11.0"
>>>>>>             },
>>>>>>             "macaddress": "d4:ae:52:98:71:1f",
>>>>>>             "mtu": 1500,
>>>>>>             "promisc": false,
>>>>>>             "type": "ether"
>>>>>>         },
>>>>>> [...]
>>>>>>
>>>>>> Then, I have a playbook that sets a variable:
>>>>>>
>>>>>> Example from a different server that doesn't have bonding or VLANs:
>>>>>>
>>>>>> listen_ip: "{{ ansible_eth1.ipv4.address }}"
>>>>>>
>>>>>> Example that doesn't work:
>>>>>>
>>>>>> listen_ip: "{{ ansible_bond0.11.ipv4.address }}"
>>>>>>
>>>>>> Ansible output:
>>>>>>
>>>>>> fatal: [testserver] => {'msg': 'AnsibleUndefinedVariable: One or more
>>>>>> undefined variables: dict object has no element 11', 'failed': True}
>>>>>> fatal: [testserver] => {'msg': 'AnsibleUndefinedVariable: One or more
>>>>>> undefined variables: dict object has no element 11', 'failed': True}
>>>>>>
>>>>>> FATAL: all hosts have already failed -- aborting
>>>>>>
>>>>>> I have tried different possibilities but they all failed:
>>>>>>
>>>>>> "{{ ansible_bond0\.11.ipv4.address }}"
>>>>>> "{{ ansible_bond0\\.11.ipv4.address }}"
>>>>>> "{{ [ansible_bond0.11].ipv4.address }}"
>>>>>> "{{ {ansible_bond0.11}.ipv4.address }}"
>>>>>> "{{ 'ansible_bond0.11'.ipv4.address }}"
>>>>>>
>>>>>> I think Ansible is taking the VLAN tag as part of the subgroup in the
>>>>>> config...
>>>>>>
>>>>>> What is the correct way of selecting the IPv4 address of a bond0.11
>>>>>> interface?
>>>>>>
>>>>>> Thank you in advanced.
>>>>>>
>>>>>> Best regards,
>>>>>> J.
>>>>>>
>>>>>>  --
>>>>>> 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/15e60e0b-879b-4ce2-8935-
>>>>>> 717f5be40cf7%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/ansible-project/15e60e0b-879b-4ce2-8935-717f5be40cf7%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Matt Martz
>>>>> @sivel
>>>>> sivel.net
>>>>>
>>>>> --
>>>>> 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/mpB96y4Ee58/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/CAD8N0v_ohv%2B5czaYvmg2%2BV_%3DvQcR-
>>>>> iT8GLt1ctHQeVnyskr%3DgQ%40mail.gmail.com
>>>>> <https://groups.google.com/d/msgid/ansible-project/CAD8N0v_ohv%2B5czaYvmg2%2BV_%3DvQcR-iT8GLt1ctHQeVnyskr%3DgQ%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/CACwajiME7VyPE9ZQ-8gD3LtX7KicrkECbNKY15uexxL9J3j
>>>> gbw%40mail.gmail.com
>>>> <https://groups.google.com/d/msgid/ansible-project/CACwajiME7VyPE9ZQ-8gD3LtX7KicrkECbNKY15uexxL9J3jgbw%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/54c1da78-8e36-42ab-aff9-99f7ef30d97d%40googlegroups.com
>> <https://groups.google.com/d/msgid/ansible-project/54c1da78-8e36-42ab-aff9-99f7ef30d97d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Matt Martz
> @sivel
> sivel.net
>
> --
> 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/mpB96y4Ee58/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/CAD8N0v9_QTMazffiVb3%2Bi1ESDZ%3Dh7%2BFxJkbF8puQVd2MudP0sA%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CAD8N0v9_QTMazffiVb3%2Bi1ESDZ%3Dh7%2BFxJkbF8puQVd2MudP0sA%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/CACwajiN04g3B-hQFJCh2rU0OEojneTvew2QjC-eGd98qNr_4gw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to