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 <codding...@gmail.com>wrote:

> On Tue, Mar 25, 2014 at 2:58 PM, Michael DeHaan <mich...@ansible.com>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 <codding...@gmail.com>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 
>>> <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<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 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/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 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/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 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/CAEVJ8QPOopN6hcHvhi6v9EtrM8TLhg6LyTtdfcVC%2BFjacYdkWg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to