Ansible遍历文件

时间:2018-10-15 11:03:42

标签: loops plugins ansible ansible-2.x

在Ansible 2.5之前,循环的语法曾经是with_x。从2.5开始,loop受到青睐,with_x基本上从文档中消失了。

不过,文档中仍然提到了如何将with_x替换为loop的示例。但是我对现在应该如何遍历文件目录一无所知。

假设我需要使用给定的目录上载所有文件,而我以前使用的是with_fileglob

- name: Install local checks
  copy:
    src: "{{ item }}"
    dest: /etc/sensu/plugins/
    owner: sensu
    group: sensu
    mode: 0744
  with_fileglob:
    - plugins/*

那么现代的等效物是什么?可能吗我知道我仍然可以使用with_fileglob,但是在编写新角色时,最好让它们适应未来。

2 个答案:

答案 0 :(得分:2)

等效为

loop: "{{ lookup('fileglob', 'plugins/*', wantlist=True) }}"

这里是doc

答案 1 :(得分:2)

从当前的Ansible loops doc

任何需要在循环内使用with_*的{​​{1}}语句 不能转换为使用lookup关键字。例如,代替 在做:

loop

更干净:

loop: "{{ lookup('fileglob', '*.txt', wantlist=True) }}"