I wouldn't shell out.

I'd call python's very handy os.path.walk with a custom function.  If you'd
like to talk about this, ansible-devel is probably a bit more on topic (and
I'm trying to spur that list into greater life).




On Thu, Jul 24, 2014 at 10:05 AM, Bill Lubanovic <[email protected]> wrote:

> Thanks, Michael. It looks like with_fileglob() only shows files, not
> directories, so that wouldn't work for me.
>
> I'm testing a workaround using "find" or "ls", then split() to grab <b>,
> <c>, and <d>. It would be nice to pass <b> and <c> as arguments to a task
> using the synchronize module.
>
> On Wednesday, July 23, 2014 5:18:21 PM UTC-5, Michael DeHaan wrote:
>
>> So there's already "with_fileglob" in Ansible
>>
>> - debug: msg={{ path }}
>>   with_fileglob: /path/to/files/*/*.tgz
>>
>> This isn't recursive however, despite being able to specify multiple
>> directories to read.
>>
>> It would be possible to make a lookup plugin that was, like a
>> "with_fileglob_recursive" that used the results of something like
>> os.path.walk.
>>
>> So basically yes, you need a new one.
>>
>> With_nested is for constructing nested loops and is something a bit
>> different.
>>
>>
>>
>>
>> On Wed, Jul 23, 2014 at 1:30 PM, Bill Lubanovic <[email protected]>
>> wrote:
>>
>>> I'd like to walk a directory hierarchy of the form <a>/<b>/<c>/<d>. <a>
>>> is a fixed root directory, and isn't relevant. I have a number of <b>
>>> directories, which represent machine categories. Under each <b> are zero or
>>> more <c> directories, which are string values for that category. Finally,
>>> <d> is a directory hierarchy to copy to machines that match the parent
>>> <b>/<c> combination. For example:
>>>
>>> /tmp/test/color/red/etc/passwd
>>> /tmp/test/color/green/etc/motd
>>> /tmp/test/flavor/cinnamon/var/something
>>>
>>> <a> here is /tmp/test. There are two <b> categories (color and flavor):
>>> the first (color) has two <c> subdirectories (red and green) and the second
>>> (flavor) has one (cinnamon). Each <c> has a different <d> (file hierarchy)
>>> to be copied to machines that match <b>/<c>.
>>>
>>> How do I walk each <b>, passing its value, its <c> subdirectories, and
>>> their <d> subdirectories to a task? I need to consider <b> and <c> together
>>> with other vars and facts (machine "colors" and "flavors") to pick target
>>> destinations for <d>.
>>>
>>> I've looked at the various loop constructs, and see how to chain with
>>> register, but not how to populate the lists for with_nested.
>>>
>>> Thanks!
>>>
>>>
>>>  --
>>> 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/5ec31b08-1b0d-4041-b867-
>>> 1c46f8c13c46%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/5ec31b08-1b0d-4041-b867-1c46f8c13c46%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/549f8410-17af-41a2-b7d8-5393e093d00b%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/549f8410-17af-41a2-b7d8-5393e093d00b%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/CA%2BnsWgyUUfgeQLStOmt%2BGDHjFfRAyPZDZq1x6cyhyZzxJBJ4%3Dw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to