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]
> <javascript:_e(%7B%7D,'cvml','ansible-project%[email protected]');>
> .
> To post to this group, send email to [email protected]
> <javascript:_e(%7B%7D,'cvml','[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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to