答案 0 :(得分:16)
前段时间我正在构建一个需要类似内容的自动化 - 请参阅Ansible send file to the first met destination。
在ansible 2.0之前,如果不使用command
或shell
,则无法执行此操作。
如果您真的无法升级到ansible 2.0,请使用command
模块:
vars:
directory: /path/to/dir
tasks:
- command: "ls {{directory}}"
register: dir_out
- debug: var={{item}}
with_items: dir_out.stdout_lines
答案 1 :(得分:9)
这是在目录模板中列出扩展名为.j2的所有文件并将它们传递给模块的示例。
template: src="{{ item }}" dest="generated/{{ inventory_hostname }}/{{ item | basename | replace('.j2', '')}}"
delegate_to: 127.0.0.1
with_fileglob: templates/*.j2
答案 2 :(得分:0)
现在有一个可以使用的查找模块。 示例:显示名称以“ ansible”开头且位置为/ tmp的文件夹,因此/ tmp / ansible *
- name: ls -d /tmp/ansible*
find:
paths: /tmp
patterns: "ansible*"
recurse: no
file_type: directory
register: found_directories
- debug:
msg: "{{ [item.path] }} "
with_items: "{{ found_directories.files }}"