Ansible: как перебирать роль с массивом? Можно ли вызвать роль несколько раз в цикле следующим образом: vars: my_array: - foo - bar - baz roles: - role: foobar with_items: my_array Как мы можем это сделать? Ответ 1 Теперь поддерживается Ansible 2.3.0: - name: myrole with_items: - "aone" - "atwo" include_role: name: myrole vars: thing: "{{ item }}" Ответ 2 Там нет способа перебрать роль в настоящее время, но, как упоминалось в этом обсуждении в группе Google, вы можете передать список или указать роль и затем проведите через это внутри. Итак, вы могли бы сделать что-то вроде: # loop_role/tasks/main.yml - name: debug item debug: var="{{ item }}" with_items: my_array И затем используйте его следующим образом: - hosts: all vars: my_array: - foo - bar - baz roles: - { role: loop_role, my_array: "{{ my_array }}" } Ответ 3 Модуль include_role описан здесь: https://docs.ansible.com/ansible/include_role_module.html В соответствии с документами он уже был введен в Ansible 2.2 Ответ 4 Вот пример кода для использования зацикливания include_role на my_array: - name: Use role in loop include_role: name: myrole loop: "{{ my_array }}"
Ответ 1 Теперь поддерживается Ansible 2.3.0: - name: myrole with_items: - "aone" - "atwo" include_role: name: myrole vars: thing: "{{ item }}"
Ответ 2 Там нет способа перебрать роль в настоящее время, но, как упоминалось в этом обсуждении в группе Google, вы можете передать список или указать роль и затем проведите через это внутри. Итак, вы могли бы сделать что-то вроде: # loop_role/tasks/main.yml - name: debug item debug: var="{{ item }}" with_items: my_array И затем используйте его следующим образом: - hosts: all vars: my_array: - foo - bar - baz roles: - { role: loop_role, my_array: "{{ my_array }}" }
Ответ 3 Модуль include_role описан здесь: https://docs.ansible.com/ansible/include_role_module.html В соответствии с документами он уже был введен в Ansible 2.2
Ответ 4 Вот пример кода для использования зацикливания include_role на my_array: - name: Use role in loop include_role: name: myrole loop: "{{ my_array }}"