Hello, That was indeed the problem!! The play works great now. Thanks so much for your help everyone.
It would be excellent if we could also add a note to the docs about nested moustaches. Thanks again, Lilian On Wednesday, August 12, 2015 at 12:37:56 PM UTC-7, Brian Coca wrote: > > also, change the conditional: > when: nics[num|int].type == "static" > > On Wed, Aug 12, 2015 at 2:46 PM, Matt Martz <[email protected] <javascript:> > > 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] <javascript:>> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> 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/f5e2aaae-52d2-4859-b95d-1d43000561a8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
