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] <javascript:>>
> 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] <javascript:>
>> > 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]
>>> <javascript:>> 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] <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/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] <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/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] <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/CACwajiME7VyPE9ZQ-8gD3LtX7KicrkECbNKY15uexxL9J3jgbw%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.
For more options, visit https://groups.google.com/d/optout.