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.
