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 <cham...@wesleyan.edu>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 ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAMfrSccOdFYNG7Dpx6vN2sQv4pBBPwayWrXOhuuLM2pMGpM4nw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to