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 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/CAD8N0v9_QTMazffiVb3%2Bi1ESDZ%3Dh7%2BFxJkbF8puQVd2MudP0sA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
