I would not expect you would need to do this above workaround if the current variable had an eth0 address.
If you are in fact seeing that, please file a ticket and we can take a look. On Tue, Mar 25, 2014 at 2:56 PM, Matt Coddington <[email protected]>wrote: > Hey Morgan, > Thanks so much for this... all very good ideas, I see how they may work > outside of the current way I was thinking about this problem... will > definitely try a few out and let the list know where I land :) > > matt > > > > On Tue, Mar 25, 2014 at 2:27 PM, C. Morgan Hamill <[email protected]>wrote: > >> Excerpts from Matt Coddington's message of 2014-03-25 14:15:18 -0400: >> > > > {% for host in groups['uat4-webapp']|sort %} >> > > > BalancerMember ajp://{{ hostvars[host].webapp_ip }}:8009 >> loadfactor=20 >> > > > {% endfor %} >> > > > >> > > > The "webapp_ip" variable is calculated like this in a group_vars >> file: >> > > > >> > > > webapp_ip: "{{ ansible_eth0.ipv4.address }}" >> > > {{ hostvars[host].ansible_eth0.ipv4.address }} >> > That's what i was afraid of... you're correct that explicitly >> referencing >> > those does work, and I can do this in the template by having different >> > cases for the different sets of servers (e.g. "if prod, use >> > ansible_bond0.ipv4.address, if staging use ansible_eth0.ipv4.address, >> > etc"). I was just hoping there was a way to abstract that if/then logic >> > into a common variable outside the template. >> >> Idea, untested: >> >> In your template: >> >> {% for host in groups['uat-webapp']|sort %} >> BalancerMember ajp://{{ >> hostvars[host][hostvars[host][webapp_iface]].ipv4.address }} >> {% endfor %} >> >> In your group_vars file: >> >> webapp_iface: "ansible_bond0" >> >> Or what have you. >> >> Or this might work: >> >> Leave your template as is, and try putting in your group_vars file: >> >> webapp_ip: "{{ hostvars[inventory_hostname].ansible_eth0.ipv4.address >> }}" >> >> Also, you might want to look into setting your own facts, as those are >> per-host. >> -- >> Morgan Hamill >> >> > -- > 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/CAMfrSccOdFYNG7Dpx6vN2sQv4pBBPwayWrXOhuuLM2pMGpM4nw%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CAMfrSccOdFYNG7Dpx6vN2sQv4pBBPwayWrXOhuuLM2pMGpM4nw%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/CAEVJ8QM1%2BgL_FCYAn79J9G8tgHcYZOo--UDB7zA5OwLMZZjO6g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
