Right, looking back at the first post, I wouldn't expect webapp_ip to be
something in hostvars like that.

    BalancerMember ajp://{{
hostvars[host][hostvars[host][webapp_iface]].ipv4.address
}}

is the way to go

It can be shortened with a "set statement" in Jinja2 if you want, though,
if you plan to reuse it throughout the file




On Tue, Mar 25, 2014 at 3:16 PM, Matt Coddington <[email protected]>wrote:

> gotcha, yeah i need the variables from another host so sounds like the
> indirect method is the way to go.
>
> thanks!
> matt
>
>
>
> On Tue, Mar 25, 2014 at 3:07 PM, Michael DeHaan <[email protected]>wrote:
>
>> I mean if it's the current host in the host loop, for which you are
>> writing the template.
>>
>> (You shouldn't have to indirect through the hostvars structure unless you
>> need the variables for another host).
>>
>>
>>
>>
>>
>> On Tue, Mar 25, 2014 at 3:04 PM, Matt Coddington <[email protected]>wrote:
>>
>>> On Tue, Mar 25, 2014 at 2:58 PM, Michael DeHaan <[email protected]>wrote:
>>>
>>>> I would not expect you would need to do this above workaround if the
>>>> current variable had an eth0 address.
>>>>
>>>
>>> Thanks Michael... I don't understand what "the current variable having
>>> an eth0 address" means...  you mean the current host i'm referring to in
>>> hostvars?  it definitely has an eth0 address and if that should in fact
>>> work i can submit a ticket with a pretty minimal setup to reproduce i think.
>>>
>>> thanks,
>>> matt
>>>
>>>
>>>
>>>>
>>>> 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<https://groups.google.com/d/msgid/ansible-project/CAEVJ8QM1%2BgL_FCYAn79J9G8tgHcYZOo--UDB7zA5OwLMZZjO6g%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/CAMfrSccx4H9zhODDDL56Q6kOGpBQL5%2B1oPkTsBnyB7fuZCPMMA%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CAMfrSccx4H9zhODDDL56Q6kOGpBQL5%2B1oPkTsBnyB7fuZCPMMA%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/CAEVJ8QPOopN6hcHvhi6v9EtrM8TLhg6LyTtdfcVC%2BFjacYdkWg%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CAEVJ8QPOopN6hcHvhi6v9EtrM8TLhg6LyTtdfcVC%2BFjacYdkWg%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/CAMfrScc1jPejczntKh%3DaWNZgLSw70GsTzL9dwHnr%3DGZEuMOpHA%40mail.gmail.com<https://groups.google.com/d/msgid/ansible-project/CAMfrScc1jPejczntKh%3DaWNZgLSw70GsTzL9dwHnr%3DGZEuMOpHA%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/CAEVJ8QOz33eFsavywK%3DTZWP_M8hpVFwnc2yMRU%3DHO_pRJmE1mQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to