从目录中获取文件名列表

Get list of file names from directory

我试图从机器上的目录中获取文件列表 运行 ansible,但没有完整的文件路径直到文件名。
到目前为止,我有

managed_files: "{{ lookup('fileglob', '../rules/*', wantlist=True) }}

这将 return 规则目录中的文件列表,但包含文件的完整路径,例如。 /path/to/rules/rule1.yml,当我只想要rule1.yml.

我想做这样的事情:

managed_files: "{{ lookup('fileglob', '../rules/*', wantlist=True) | basename | list }}"

但这给出了一个错误,即 basename 需要一个类似路径的字符串,而不是一个列表。
这样做的正确方法是什么?

使用 map 对列表的所有元素应用 basename 过滤器:

managed_files: >-
  {{ 
    lookup('fileglob', '../rules/*', wantlist=True) 
    | map('basename') 
    | list 
  }}

鉴于任务:

- debug:
    msg: >- 
      {{ 
        lookup('fileglob', '../rules/*', wantlist=True) 
        | map('basename') 
        | list 
      }}

这产生:

TASK [debug] *************************************************************
ok: [localhost] => 
  msg:
  - rule3.yml
  - rule1.yml
  - rule2.yml