Ansible,如何将处理程序称为整体游戏,不仅仅是一项任务

时间:2017-03-07 09:33:57

标签: ansible

如何调用处理程序myhandler.yml作为整体游戏,不仅仅是一个任务呢?

role
    --handlers
    ----myhandler.yml
    --tasks
    ----mytasks.yml

我有特定要求,我无法使用模块进行服务处理,因为我的应用程序在非root帐户下运行。

我已在tasks-> mytasks.yml中部署任务,但我想触发handler-> myhandler.yml作为通知处理程序。

mytasks.yml中有很多非标准任务:例如异步调用,检查端口,检查pid,检查进程。

可以将此处理程序作为整体播放作为通知吗?

编辑: 或者我应该将myhandler.yml放入任务并通过@include调用它?

2 个答案:

答案 0 :(得分:-1)

是..通知可以用来这样做。 无需将处理程序文件包含为处理程序。

在任何任务中提到通知,例如你有tomcat重启的处理程序,名称为“restart tomcat”,那么任何需要tomcat restart的任务都应该有通知。

- name: Modify server.xml
  copy: 
   src: a.txt
   dest: server.xml
  notify: restart tomcat

这将在剧本结束时自动调用处理程序。

答案 1 :(得分:-1)

如果要设置在任务结束时运行处理程序,无论任务结果如何,都包含在任务中:

meta: flush_handlers