Ansible遍历文件

Buz*_*zut 2 plugins loops ansible ansible-2.x

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

尽管如此,文档提到的如何更换exemples with_xloop。但是我对于现在应该如何遍历文件目录一无所知。

假设我需要使用给定的目录中的所有文件进行上传with_fileglob

- name: Install local checks
  copy:
    src: "{{ item }}"
    dest: /etc/sensu/plugins/
    owner: sensu
    group: sensu
    mode: 0744
  with_fileglob:
    - plugins/*
Run Code Online (Sandbox Code Playgroud)

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

Vla*_*tka 5

等效为

loop: "{{ lookup('fileglob', 'plugins/*', wantlist=True) }}"
Run Code Online (Sandbox Code Playgroud)

这是文档


小智 5

从当前的Ansible 循环文档

任何with_*需要lookup在循环中使用的语句都不应转换为使用loop关键字。例如,而不是这样做:

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

保持更干净:

with_fileglob: '*.txt'