ansible: использование with_items с обработчиком уведомлений

Я хочу передать переменную обработчику уведомлений, но нигде не могу найти здесь, в SO, документах или проблемах в репозитории github, как это сделать. То, что я делаю, это развертывание нескольких веб-приложений, и когда код одного из этих веб-приложений изменяется, он должен перезапустить службу для этого веб-приложения.

Отэтот ТАК вопросЯ получил это на работу, несколько:

- hosts: localhost
  tasks:
  - name: "task 1"
    shell: "echo {{ item }}"
    register: "task_1_output"
    with_items: [a,b]
  - name: "task 2"
    debug:
      msg: "{{ item.item }}"
    when: item.changed
    with_items: task_1_output.results

(Поместите его в test.yml и запуститеansible-playbook test.yml -c local.)

Но это регистрирует результат первой задачи и условно повторяет результат во второй задаче. Моя проблема в том, что это становится грязным, когда у вас есть две или более задач, которые нужно уведомить о второй задаче! Например, перезапустите веб-службу, если либо код был обновлен, либо была изменена конфигурация.

AFAICT, нет способа передать переменную в обработчик. Это было бы чисто исправить для меня. Я обнаружил некоторые проблемы на github, где другие люди сталкиваются с той же проблемой, и предлагаются некоторые синтаксисы, но ни один из них на самом деле не работает.

Включение суб-playbook не будет работать, потому что использованиеwith_items вместе сinclude был объявлен устаревшим

В моих пьесах у меня естьsite.yml который перечисляет роли группы, а затем вgroup_vars для этой группы я определяю список веб-приложений (включая версии), которые должны быть установлены. Мне кажется, это правильно, потому что таким образом я могу использовать один и тот же сборник пьес для постановки и производства. Но, возможно, единственное решение - определить роль несколько раз и продублировать список ролей для постановки и производства.

Так в чем же здесь мудрость?

Ответы на вопрос(2)

Ваш ответ на вопрос