есть пайплайн в котором происходит выбор групп хостов(все записывается в переменную, скрипт обрабатывает), и потом запускается плейбук где в hosts передается эта переменная(в виде массива), там происходит рестарт приложений, и как сделать чтобы не ждать выполнения на одном, а сделать параллельный запуск? можно как плейбук изменить или средствами jenkins.
изначально понятно что у вас сделано через жопу , попробуйте лучше саму реализацию изменить чем городить такую жесть
ощущение что вы не понимаете что такое ci и сильно неправильно его используете
Пума Тайланд я чуть не правильно написал, есть приложения которые распределены по кластерам на линуксовых машинах, и в пайплайн происходит выбор этих приложений и действие, например я выбрал 2 приложения рестарт сделать, ансибловый плейбук запускает скрипт рестарта, но в начале одно приложение, потом другое, хотелось бы ускорить этот процесс и сделать параллельный запуск. вот есть 1 идея что может как то циклом идти по этим приложениям и для каждого приложения запускать плэйбук. видел в jenkins parallel , но как это реализовать не знаю, и 2 вариант в плейбуке сделать poll: 0 но если не получится как отлавливать ошибку и быстрее ли так будет? (да я начинающий в этом и спрашиваю совет специалистов).
Так ансибл полностью параллельно на серверах все делает
То если перезапуск приложения на одной машине занимает пять секунд, а перезапуск второго тоже пять секунд, то ансиблов на 1000 машин это сделается примерно за десять секунд
Пума Тайланд а если приложения A стоит на 1-10 машинах, приложение В на 5-15, С на 1-10, то есть на одной и той же машине могут быть несколько разных приложений.
Пума Тайланд если на одной машине стоит 5 приложений, и в плэйбуке задача сделана циклом:
hosts: "{{ Cluster }}"
tasks:
- name: Кластер целиком
shell: admin/{{ ids[item] }}_mgmt.sh {{ ClusterAction3 | default('status') }}
with_items: "{{ Cluster.split(',') }}"
register: shell_result
run_once: yes
tags: single
Пума Тайланд они так и разбиты, вопрос такой тут стоит все равно run_once то есть он подключится к какой то одной машине и будет там запускать скрипт циклом, он запустит один shell скрипт и пока не выполнит его, другой не начнет?
Можно попробовать выбирать что рестартовать с помощью systemd или service через loop. и вместо сбора групп собирать переменные с именами сервисов для каждого хоста
Ну или что-то аналогичное придумать для других методов рестарта