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. For more options, visit https://groups.google.com/d/optout.
