Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 包括来自不同文件的处理程序_Ansible_Listener_Handler - Fatal编程技术网

Ansible 包括来自不同文件的处理程序

Ansible 包括来自不同文件的处理程序,ansible,listener,handler,Ansible,Listener,Handler,我拥有的处理程序不是由playbook或tasks运行的 我有以下目录结构: <project> - playbook.yml - <roles> -<handler> - main.yml -<meta> -<tasks> -main.yml playbook只调用task/main.yml,并具有host:all 我需要包含/导入吗?我在剧本里试过,但没用下面的剧本 任务: -包括任务:t

我拥有的处理程序不是由playbook或tasks运行的

我有以下目录结构:

<project>
  - playbook.yml
  - <roles>
  -<handler>
     - main.yml
  -<meta>
  -<tasks>
      -main.yml
playbook只调用task/main.yml,并具有host:all

我需要包含/导入吗?我在剧本里试过,但没用下面的剧本

任务:
-包括任务:tasks/main.yml
-meta:flush\u处理程序
-调试:var=val1.stdout
处理程序:
-导入任务:handlers/main.yml
  • 必须导入处理程序才能在任务通知它时出现
  • 可以包含或导入任务
handler/main.yml中缺少模块。这将导致:

错误!在任务中未检测到任何操作。这通常表示模块名称拼写错误或模块路径不正确

在handler/main.yml中使用一些模块。例如:

-名称:已测试
命令:“echo‘正在运行的处理程序’”
注册号码:val1
听:“现在就测试我”
经营这样的游戏会给你带来好处

val1.stdout:正在运行的处理程序

您应该具有中描述的结构,因此目录应称为
处理程序
(而不是
处理程序

我猜导入部分在主剧本中,角色也在主剧本中导入?但是我只在主剧本中导入了角色和处理程序,因为有两个角色,每个角色在其各自的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"