включая обработчики из другого файла - PullRequest
0 голосов
/ 08 апреля 2019

Мои обработчики не выполняются книгой или задачами

У меня есть следующая структура каталогов:

<project>
  - playbook.yml
  - <roles>
  -<handler>
     - main.yml
  -<meta>
  -<tasks>
      -main.yml

Проблема в том, что обработчик никогда не вызывается.

tasks/main.yml:

  - name: run task1
    command: run_task
    notify: "test me now"


handler/main.yml:

   - name: tested
     register: val1
     listen: "test me now"

Playbook просто вызывает task / main.yml и имеет host: all

Нужно ли включать / импортировать? Я попробовал в playbook, но это не помогло

1 Ответ

0 голосов
/ 08 апреля 2019

Игра ниже работает

  tasks:
    - include_tasks: tasks/main.yml
    - meta: flush_handlers
    - debug: var=val1.stdout
   handlers:
    - import_tasks: handlers/main.yml
  • обработчики должны быть импортированы, чтобы присутствовать, когда задача уведомляет об этом.
  • задачи могут быть включены или импортированы.

В handler / main.yml отсутствует модуль. Это приведет к:

ERROR! в задании не обнаружено никаких действий. Это часто указывает на неправильно введенное имя модуля или неправильный путь к модулю.

Использовать некоторый модуль в handler / main.yml . Например:

- name: tested
  command: "echo 'running handler'"
  register: val1
  listen: "test me now"

Запуск такой игры дает:

val1.stdout: running handler
...