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.