在Ansible中使用查找和复制模块

时间:2018-11-15 09:51:55

标签: linux ansible ansible-2.x ansible-inventory

我会知道如何使用查找和复制模块。

运行以下代码时,出现错误。

可能我没有使用正确的寄存器。

- name: ACP Collection 2
  find:
    path: "{{item}}"
    recurse: yes
    patterns: '*.log'
  with_items:
    - '/usr/'
    - '/opt/tomcat/logs/'
    - '/var/'
    - '/root/'
    - '/opt/allot/'        
  register: files_to_copy

- name: copy files to tmp
  copy:
    src: "{{item}}"
    dest:  /data/Snapshot/ACP/ 
  with_items: files_to_copy.results

请咨询。

1 个答案:

答案 0 :(得分:0)

您正在遍历find模块中的路径。循环返回结果列表,您需要从每个结果中再次遍历由单个find执行返回的列表。取而代之的是,您可以提供find模块的路径列表。这将使事情变得容易。然后,您只需要遍历files_to_copy.files而不是files_to_copy.results

- name: ACP Collection 2
  find:
    paths:
      - '/usr/'
      - '/opt/tomcat/logs/'
      - '/var/'
      - '/root/'
      - '/opt/allot/' 
    recurse: yes
    patterns: '*.log'
  register: files_to_copy

- name: copy files to tmp
  copy:
    src: "{{ item }}"
    dest:  /data/Snapshot/ACP/ 
  with_items: "{{ files_to_copy.files }}"