задача ansible не запускает обработчики

задача ansible не запускает обработчики

У меня возникли проблемы с получением задачи в роли ansible для запуска обработчиков. Вот файлы, которые я использую:

roles/services/tasks/postgresql.ymlпоказывает

- name: install postgresql packages
  apt: name={{ item }} state=present
  sudo: yes
  with_items:
  - postgresql
  - libpq-dev
  - python-psycopg2
  notify:
  - set postgres password
  - configure md5 security
  - restart postgres server

roles/services/handlers/main.ymlпоказывает

- name: set postgres password 
  sudo: yes
  sudo_user: postgres
  postgresql_user: name=postgres password=newpass

- name: configure md5 security
  sudo: yes
  copy: src=pg_hba.conf dest=/etc/postgresql/9.3/main/pg_hba.conf group=postgres owner=postgres backup=yes

- name: restart postgres server
  sudo: yes
  service: name=postgresql enabled=yes state=restarted

Когда я запускаю плейбук, задача завершается успешно и подтверждает, что она изменила состояние, но не запускает обработчики. Это последняя задача в этой роли, и когда она выполнена, ansible переходит к первой задаче в следующей роли в моем плейбуке:

TASK: [services | install postgresql packages] ******************************** 
changed: [IP.REMOVED.##] => (item=postgresql,libpq-dev,python-psycopg2)

TASK: [passenger | install passenger gem] ************************************* 

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

решение1

Вы, возможно, не ждете достаточно долго. Ansible будет ждать обработчики так долго, как это возможно. Если вы хотите выполнить все обработчики, которые уже поставлены в очередь, попробуйте

 - meta: flush_handlers

что я нахожу очень удобным. Например, после установки пакета Debian я хочу, чтобы он сразу же убивал демонов, поэтому я добавляю команду meta сразу после установки пакета, и Ansible не заставляет меня ждать.

Связанный контент