Loops 如何将寄存器值传递到include_角色循环中

Loops 如何将寄存器值传递到include_角色循环中,loops,ansible,include,roles,Loops,Ansible,Include,Roles,我有一个ansible playbook,它正在读取文件列表,并为这些值设置一个寄存器。然后,我想将文件列表传递到一个include\u角色任务中。下面是我当前的代码 - name: Get list of files command: "sh -c 'find playbooks/vars/files/*.yml'" register: find_files - include_vars: file: "{{ item }}" loop: "{{ find_f

我有一个ansible playbook,它正在读取文件列表,并为这些值设置一个寄存器。然后,我想将文件列表传递到一个
include\u角色
任务中。下面是我当前的代码

 - name: Get list of files
   command: "sh -c 'find playbooks/vars/files/*.yml'"
   register: find_files

 - include_vars:
     file: "{{ item }}"
   loop: "{{ find_files.stdout_lines }}"
   register: result

 - name: call role
   include_role:
     name: myRole
   loop: "{{ result.results }}"

当playbook运行时,它会在目录中找到两个文件
file1.yml
file2.yml
。但是当它运行
include_role
循环时,它会传递
file1.yml
两次,并且从不传递
file2.yml
。试图确定如何确保
file2.yml
也传递给角色

通过构造一个数组,然后将其输入include_角色,并使用find模块而不是shell,我能够找到正确的问题

 - name: Recursively find yml files
    find:
      paths: ~/vars
      recurse: yes
    register: find_files

  - name: Construct file array
    set_fact:
      file_arr: "{{ file_arr|default([]) + [file.path] }}"
    with_items: "{{ find_files.files }}"
    loop_control:
      loop_var: file

  - name: Topic Management
    include_role:
      name: kafkaTopicManagement
    vars:
      kafkaFiles: "{{ item }}"
    with_items: "{{ file_arr }}"


现在,这会将文件提供给include_角色

我不相信在
include_role:
上循环(特别是当
名称:
是一个常量时)除了浪费CPU之外,还能做任何事情;您是否尝试将不同的变量传递给角色?另外,
命令:sh-c“
也称为