And just for completeness sake:

ansible-playbook extravar.yml -e 
'{"listname":[{"name":"foo","path":"/asd/bsdfr", 
"version":"2"}]}'


PLAY [localhost] 
************************************************************** 


TASK: [test extravars] 
******************************************************** 
ok: [localhost] => (item={u'path': u'/asd/bsdfr', u'version': u'2', u'name': 
u'foo'}) => {
    "item": {
        "name": "foo", 
        "path": "/asd/bsdfr", 
        "version": "2"
    }, 
    "msg": "version - 2"
}


Thanks!
/M

Den torsdagen den 11:e december 2014 kl. 20:44:48 UTC+1 skrev Michael 
DeHaan:
>
> JSON needs to be valid JSON :)
>
>
>
> On Thu, Dec 11, 2014 at 2:30 PM, Mikael Sandström <[email protected] 
> <javascript:>> wrote:
>
>> Thanks!
>>
>> I cant get it to behave as a 'normal' list though, so obviously I'm doing 
>> something wrong.
>>
>> If I run this playbook without extra vars:
>>
>>
>> ---
>> - hosts: localhost
>>   connection: local
>>   gather_facts: false
>>   vars: 
>>     listname:                  
>>       - name: ble
>>         version: 1
>>         path: /some/path
>>
>>   tasks:
>>   - name: test extravars
>>     debug: msg="version - {{ item.version }}"
>>     #debug: msg=""
>>     with_items: listname
>>
>>
>>
>> It works as expected, and I get this:
>>
>> TASK: [test extravars] 
>> ******************************************************** 
>> ok: [localhost] => (item={'path': '/some/path', 'version': 1, 'name': 
>> 'ble'}) => {
>>     "item": {
>>         "name": "ble", 
>>         "path": "/some/path", 
>>         "version": 1
>>     }, 
>>     "msg": *"version - 1"*
>> }
>>
>>
>> However, if I try to do this 
>>
>> ansible-playbook extravar.yml *-e '{"listname":["name: foo, path: 
>> /asd/bsdfr, version: 2"]}'*
>>
>>
>> PLAY [localhost] 
>> ************************************************************** 
>>
>>
>> TASK: [test extravars] 
>> ******************************************************** 
>> fatal: [localhost] => One or more undefined variables: 'unicode object' 
>> has no attribute 'version'
>>
>>
>> And I guess that is because everything in 'item' is treated like one 
>> string
>>
>>
>>
>> TASK: [test extravars] 
>> ******************************************************** 
>> ok: [localhost] => (item=name: foo, path: /asd/bsdfr, version: 2) => {
>>     "item": "name: foo, path: /asd/bsdfr, version: 2", 
>>     "msg": ""
>> }
>>
>>
>> If I quote each pair, I get 3 different 'items'
>>
>> ansible-playbook extravar.yml -e '{"listname":["name: foo", "path: 
>> /asd/bsdfr", "version: 2"]}'
>>
>>
>> PLAY [localhost] 
>> ************************************************************** 
>>
>>
>> TASK: [test extravars] 
>> ******************************************************** 
>> ok: [localhost] => (item=name: foo) => {
>>     "item": "name: foo", 
>>     "msg": ""
>> }
>> ok: [localhost] => (item=path: /asd/bsdfr) => {
>>     "item": "path: /asd/bsdfr", 
>>     "msg": ""
>> }
>> ok: [localhost] => (item=version: 2) => {
>>     "item": "version: 2", 
>>     "msg": ""
>>
>>
>>
>> So, how should the quotes be placed to get it to behave like a 'normal' 
>> list? Or is there something else I need to do?
>>
>> regards
>> /M
>>
>>
>>
>>
>> Den torsdagen den 11:e december 2014 kl. 18:36:19 UTC+1 skrev James 
>> Cammarata:
>>>
>>> Hi Mikael,
>>>
>>> There are essentially two ways you can do this:
>>>
>>> 1) Use quoted JSON
>>> 2) Put the data in either a JSON or YAML file.
>>>
>>> Please refer to the documentation here for more details: 
>>> http://docs.ansible.com/playbooks_variables.html#
>>> passing-variables-on-the-command-line
>>>
>>> Thanks!
>>>
>>> On Thu, Dec 11, 2014 at 11:22 AM, Mikael Sandström <[email protected]> 
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I got a list that looks like this
>>>>
>>>> listname:                  
>>>>       - name: ble
>>>>         version: 1
>>>>         path: /some/path
>>>>         ...
>>>>         ...
>>>>
>>>>
>>>> which is accessed as
>>>>
>>>> - name: do something
>>>>   shell: run some command
>>>>   with_items: listname
>>>>
>>>>
>>>> If I want to pass the list to a playbook as an --extra-vars, how would 
>>>> I do that?
>>>>
>>>> regards
>>>> /M
>>>>
>>>> -- 
>>>> 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/bd3b24c6-0936-41a6-87ed-
>>>> 581142f0b354%40googlegroups.com 
>>>> <https://groups.google.com/d/msgid/ansible-project/bd3b24c6-0936-41a6-87ed-581142f0b354%40googlegroups.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] <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/c670d5db-060a-4208-9aff-d921b6bf258b%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/c670d5db-060a-4208-9aff-d921b6bf258b%40googlegroups.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/261f9b33-3e3c-45ac-82c9-164aa6f83bf6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to