Я работаю над Ansible playbook, чтобы автоматизировать развертывание некоторых панелей мониторинга в Grafana. У меня есть большой список элементов, которые будут входить в каждую панель, как я могу зациклить массив, но в наборах из 4 элементов из массива?
Вот цикл
- name: Loop through the topcs to fill in the template with the topic names (replacing the {kafka_topic_placeholder}) and append them to the working file
shell: sed 's/{kafka_topic_placeholder}/{{ item }}/g' "{{ widget_template_file_path }}" >> "{{ working_file_name }}"
loop: "{{ kafka_topic_names }}"
Но я хочу запустить этот набор команд:
- name: Create the beginning of row
shell: sed 's/{dashboard_id_placeholder}/{{ dashboard_id }}/g' "{{ dashboard_template_file_part_1 }}" > "{{ final_output_file_name }}"
- name: Add the contents of our working file
shell: cat "{{ working_file_name }}" >> "{{ final_output_file_name }}"
- name: Add the ending of the row
shell: sed 's/{overwrite_placeholder}/{{ overwrite_dashboard }}/g' "{{ dashboard_template_file_part_2 }}" >> "{{ final_output_file_name }}"
За этот список:
kafka_topic_names:
- topic1
- topic2
...
- topicN
Итак, я хочу получить столько строк, сколько нужно, чтобы в каждой строке было по 4 темы. Я могу заставить его работать со всем в одной строке, но я не уверен, как остановиться во время цикла, выполнить нужные мне команды, затем продолжить цикл с того же места в массиве