Loops 如何将寄存器值传递到include_角色循环中
我有一个ansible playbook,它正在读取文件列表,并为这些值设置一个寄存器。然后,我想将文件列表传递到一个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
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“
也称为