also, change the conditional: when: nics[num|int].type == "static"
On Wed, Aug 12, 2015 at 2:46 PM, Matt Martz <[email protected]> wrote: > I believe the original error holds the answer: > > fatal: [127.0.0.1] => One or more undefined variables: 'list object' has > no attribute u'0' > > That states that the list object has not attribute of the Unicode string > "0". > > So "num" appears to be a string and needs to be an int. > > Try using > > "{{ nics[num|int].ip }}" > > The |int will cast the string to an int. > > On Wednesday, August 12, 2015, <[email protected]> wrote: > >> Let me paste the output of all files & the invoking call again here: >> >> # ansible-playbook test.yml --extra-vars "num=0" >> [SNIP] >> TASK: [Static IP Case - Find out Static Overlay IP] >> *************************** >> fatal: [127.0.0.1] => One or more undefined variables: 'list object' has >> no attribute u'0' >> >> # cat nics.yml >> --- >> nics: >> - {type: 'static', ip: '10.3.5.4'} >> - {type: 'dhcp'} >> - {type: 'static', ip: '10.3.5.5'} >> >> # cat test.yml >> - hosts: 127.0.0.1 >> vars_files: >> - "nics.yml" >> tasks: >> >> # Static IP Case: Find out the Overlay IP >> - name: Static IP Case - Find out Static Overlay IP >> set_fact: >> cvmip: "{{nics[num].ip}}" >> when: nics[{{num}}].type == "static" >> >> - name: Write Overlay IP to file >> shell: echo {{cvmip}} >> /tmp/staticip.txt >> when: nics[{{num}}].type == "static" >> >> >> NOTE: >> If I replace the bad line with a hardcoded "0" as shown here, the play >> succeeds, indicating that nics.yml is correct: >> cvmip: "{{nics[0].ip}}" >> >> # cat /tmp/staticip.txt >> 10.3.5.4 >> >> >> Thanks! >> Lilian >> >> On Wednesday, August 12, 2015 at 11:09:34 AM UTC-7, Brian Coca wrote: >>> >>> when are you setting num? >>> >>> On Wed, Aug 12, 2015 at 2:08 PM, <[email protected]> wrote: >>> >>>> Hi Brian, >>>> >>>> nics.yml is not an empty list - as I pointed out, in the "when:" >>>> clause, the playbook correctly detects it as type static: >>>> >>>> host# cat nics.yml >>>> --- >>>> nics: >>>> - {type: 'static', ip: '10.3.5.4'} >>>> - {type: 'dhcp'} >>>> - {type: 'static', ip: '10.3.5.5'} >>>> >>>> The first example is exactly where I am stuck - it should work, but >>>> doesn't... >>>> cvmip: "{{nics[num].ip}}" >>>> >>>> Thanks, >>>> Lillian >>>> >>>> On Wednesday, August 12, 2015 at 10:09:51 AM UTC-7, Brian Coca wrote: >>>>> >>>>> sounds like nics is an empty list, your first example is correct >>>>> syntax, the rest are not. >>>>> >>>>> On Wed, Aug 12, 2015 at 12:27 PM, <[email protected]> wrote: >>>>> >>>>>> Hi Guys, >>>>>> >>>>>> Thank you for the responses. I should have mentioned this - I had >>>>>> already tried several combinations (including the suggestion above) with >>>>>> and without nested {{ }}, but still can't get a working syntax. Please >>>>>> see >>>>>> below for some attempts and their results. >>>>>> >>>>>> Putting an example/note in the docs would be really helpful as well. >>>>>> >>>>>> Thanks, >>>>>> Lilian >>>>>> >>>>>> host# ansible-playbook test.yml --extra-vars "num=0" >>>>>> >>>>>> Format Attempt: >>>>>> cvmip: "{{nics[num].ip}}" >>>>>> Result: >>>>>> TASK: [Static IP Case - Find out Static Overlay IP] >>>>>> *************************** >>>>>> fatal: [127.0.0.1] => One or more undefined variables: 'list object' >>>>>> has no attribute u'0' >>>>>> >>>>>> Format Attempt: >>>>>> cvmip: "{{nics['num'].ip}}" >>>>>> Result: >>>>>> TASK: [Static IP Case - Find out Static Overlay IP] >>>>>> *************************** >>>>>> fatal: [127.0.0.1] => One or more undefined variables: 'list object' >>>>>> has no attribute 'num' >>>>>> >>>>>> Format Attempt: >>>>>> cvmip: "{{nics}}"["{{num}}"].ip}} >>>>>> Result: >>>>>> ERROR: Syntax Error while loading YAML script, test.yml >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Tuesday, August 11, 2015 at 6:35:06 PM UTC-7, Timothy Appnel wrote: >>>>>>> >>>>>>> That is a good way of thinking of explaining it in the context of >>>>>>> Ansible -- start Jinja, stop Jinja. At the same time, how would you have >>>>>>> represented this in a Jinja template? Jinja doesn't allow for nested >>>>>>> mustaches in any context that I am aware of. >>>>>>> >>>>>>> I'm sure a patch to the docs to make light of this would be >>>>>>> appreciated. >>>>>>> >>>>>>> >>>>>>> >>>>>>> [image: photo] >>>>>>> Timothy Appnel >>>>>>> Senior Solutions Architect >>>>>>> >>>>>>> Ansible, Inc. *•* www.ansible.com >>>>>>> >>>>>>> On Tue, Aug 11, 2015 at 8:38 PM, Josh Smift <[email protected]> wrote: >>>>>>> >>>>>>>> TA> Don't use nested mustaches. >>>>>>>> >>>>>>>> This should probably be a FAQ. :^) FWIW, what helped me understand >>>>>>>> this is >>>>>>>> that the mustaches aren't saying "here's a variable" (in which case >>>>>>>> you >>>>>>>> might think, incorrectly, that you need to put them around all >>>>>>>> variables >>>>>>>> all the time everywhere), but rather "start parsing this as Jinja", >>>>>>>> and >>>>>>>> that once you say that, it keeps happening until you close the >>>>>>>> mustaches >>>>>>>> (which means "stop parsing this as Jinja"). One of the things that >>>>>>>> happens >>>>>>>> when you're parsing as Jinja is that variables get expanded, but >>>>>>>> thinking >>>>>>>> of it as "start Jinja" and "stop Jinja" helped me keep it straight >>>>>>>> when I >>>>>>>> first started with this stuff, anyway. >>>>>>>> >>>>>>>> -Josh ([email protected]) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> This email is intended for the person(s) to whom it is addressed >>>>>>>> and may contain information that is PRIVILEGED or CONFIDENTIAL. Any >>>>>>>> unauthorized use, distribution, copying, or disclosure by any person >>>>>>>> other >>>>>>>> than the addressee(s) is strictly prohibited. If you have received this >>>>>>>> email in error, please notify the sender immediately by return email >>>>>>>> and >>>>>>>> delete the message and any attachments from your system. >>>>>>>> >>>>>>>> -- >>>>>>>> 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/21962.38250.656216.677376%40gargle.gargle.HOWL >>>>>>>> . >>>>>>>> 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/ace73f52-96d6-47cc-92dc-fd067701e7d2%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/ansible-project/ace73f52-96d6-47cc-92dc-fd067701e7d2%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Brian Coca >>>>> >>>> -- >>>> 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/b8873bde-28c3-4455-9b1f-38c71678530a%40googlegroups.com >>>> <https://groups.google.com/d/msgid/ansible-project/b8873bde-28c3-4455-9b1f-38c71678530a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Brian Coca >>> >> -- >> 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/66fea203-dc51-4f9d-a050-1d406d5f2138%40googlegroups.com >> <https://groups.google.com/d/msgid/ansible-project/66fea203-dc51-4f9d-a050-1d406d5f2138%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > > -- > Matt Martz > @sivel > sivel.net > > -- > 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/CAD8N0v-77nk-j0SwA0L8V48bphhH1AO2YrgXKsYfe%2B3s1kNUsg%40mail.gmail.com > <https://groups.google.com/d/msgid/ansible-project/CAD8N0v-77nk-j0SwA0L8V48bphhH1AO2YrgXKsYfe%2B3s1kNUsg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Brian Coca -- 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/CAJ5XC8nV-DnOqZ5vPKgDyvaiDdLvZt19P9ZOYo2o27tsxM89WQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
