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] 
> <javascript:>> 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] <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/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].
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/c670d5db-060a-4208-9aff-d921b6bf258b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to