i am not sure it is possible to do so, but i would like to have a list of list. it would look like this:
my_files:
path: /data/ansible/testing1/
-
{name: ‘test1.reg’, ext: ‘.reg’}
-
{name: ‘test1.lst’, ext: ‘.lst’}
-
{name: ‘test1.sql’, ext: ‘.sql’}
path: /data/ansible/testing2/
-
{name: ‘test2.reg’, ext: ‘.reg’}
-
{name: ‘test2.lst’, ext: ‘.lst’}
-
{name: ‘test2.xsl’, ext: ‘.xsl’}
and most important, how can i access to those vairables in a playbook?
Note: i absolutely need to keep this kind of hierarchy with the path and then the files in this path.
Thank you!
first this is a list of dictionaries in mixed list/dictionaries which
are part of a dictionary (my_files), access to list is via index [0]
for first item or [1] for second, for dictionaries just use keys. But
I'm not sure this is a proper construct at all.
That’s a complicated structure, and you seem to be storing some redundant information.
Just wondering if you can simplify the structure and use filters to derive the ext from the name
See http://docs.ansible.com/ansible/playbooks_filters.html#other-useful-filters - there’s a splitext filter which looks appropriate.
Hope that helps,
Jon
thank you for all your replies. i changed the way i am organizing my file. now i do:
my_files:
- {path: ‘/data/ansible/testing1’, name: ‘test1.reg’, ext: ‘.reg’}
- {path: ‘/data/ansible/testing1’, name: ‘test1.lst’, ext: ‘.lst’}
so it is less readable but easier to access to a variable (item.path, item.name, …).
Not really what it is you are trying to achieve, but perhaps you can have a simple structure and use filters to fetch the parts of the full path that you need.
Something like this:
`