Ansible:从本地目录获取文件列表

时间:2016-01-14 11:30:59

标签: ansible

我使用ansible 1.9.4,我想从本地目录中获取文件列表。

在2.0版本中,有find module,但此版本为测试版。

如何在< 2.0?

3 个答案:

答案 0 :(得分:16)

前段时间我正在构建一个需要类似内容的自动化 - 请参阅Ansible send file to the first met destination

在ansible 2.0之前,如果不使用commandshell,则无法执行此操作。

如果您真的无法升级到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 }}"