Как передать значение регистра в цикл include_role - PullRequest
0 голосов
/ 23 октября 2019

У меня есть сборник пьес, который читает список файлов и устанавливает регистр для этих значений. Затем я хочу передать список файлов в задачу include_role. Ниже приведен мой текущий код.

 - 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 }}"

Когда проигрыватель запускается, он находит два файла в каталоге;file1.yml и file2.yml. Но когда он проходит через цикл include_role, он проходит file1.yml дважды и никогда не проходит file2.yml. Попытка определить, как я могу обеспечить, чтобы file2.yml также передавался роли.

1 Ответ

0 голосов
/ 24 октября 2019

Мне удалось найти правильную проблему, создав массив, а затем загрузив его в include_role и используя модуль поиска вместо оболочки.

 - 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_role.

...