Unfortunately, with_fileglob only works on files local to the Ansible orchestrator host. It will not build a list of files from the remote directory, even if you use something like the copy module that has ‘remote_source: true’.
In these situation, you can use the find module to generate a list of files on the remote host. For example, this would capture images found in the remote host /tmp directory.
- name: get images in remote /tmp
find:
paths: "/tmp"
file_type: file
patterns: '*.png,*.jpg,*.jpeg'
register: image_list
# show data structure result
- debug: msg="{{image_list}}"
This returns a dictionary where the files list can be found in “.files”. And then within that, the “.path” provides a full path to the remote file. Here is an example of using that list to copy all images to a web directory.
- name: copy each image to the Apache2 html directory
copy:
remote_source: yes
src: "{{item.path}}"
dest: "/var/www/html"
loop: "{{ image_list.files }}"
The “basename” jinja2 filter can be used to parse out just the file name part of the full path if necessary.
{{ item.path | basename }}
REFERENCES
github issue, with_fileglob acts locally