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

Reply via email to