我有一个安装tomcat的playbook,然后部署一些Web应用程序。 Web应用程序部署任务通知处理程序重新启动tomcat。但处理程序永远不会触发。我正在使用一个处理程序来管理tomcat服务,因为我从文档中了解到,即使多次调用,处理程序也应该只触发一次。我错过了一些明显的东西吗
这是剧本:
---
- hosts: all
become: true
become_user: root
roles:
- role: common
- role: nginx
- role: tomcat
- role: launchpad
- role: manager
- role: reporting
handlers:
- include: /tomcat/handlers/etitomcat_service_ctrl.yml
这是部署网络应用的角色之一:
---
- name: Remove the current installation of LaunchPad
file: path={{etitomcat_path}}/webapps/{{launchpad_module}} state=absent
- name: Remove the current war file for {{launchpad_module}}
file: path={{etitomcat_path}}/webapps/{{launchpad_module}}.war state=absent
- name: Download the latest snapshot of LaunchPad and deploy it to {{etitomcat_path}}
get_url: url={{launchpad_source_url}} dest={{etitomcat_path}}/webapps/{{launchpad_module}}.war mode=0744 owner={{etitomcat_user}} group={{etitomcat_group}} force=yes
notify: "restart_eti_tomcat"
这是处理程序:
- name: "Restart ETI Tomcat"
service: name=etitomcat state=restarted
become: true
become_user: root
listen: "restart_eti_tomcat"
- name: "Start ETI Tomcat"
service: name=etitomcat state=started
become: true
become_user: root
listen: "start_eti_tomcat"
- name: "Stop ETI Tomcat"
service: name=etitomcat state=stopped
become: true
become_user: root
listen: "stop_eti_tomcat"
答案 0 :(得分:5)
使用 Range("X2").Select
ActiveCell.FormulaR1C1 = "1"
时,添加static: yes
应解决此问题。
Ansible >= 2.1
看一下这个Github issue,链接的google groups thread也可能包含有价值的信息。
修改强>
正如@rhythmicdevil所指出的那样documentation注意到:
您无法通知在include中定义的处理程序。从Ansible 2.1开始,这确实有效,但是include必须是静态的。
答案 1 :(得分:3)
这可能不是重点,但我会添加这个,因为问题标题相当宽,这是我在谷歌搜索时发现的问题,下面是我遇到的特定问题的解决方案。
在相应任务中注册更改时,请考虑处理程序仅。即使您以最高的详细程度运行游戏,也会有 NO 条目,这样就可以解决这个问题。
RUNNING HANDLER [base : somehandler ] ***********************
Unchanged: Skipping
当它们在更改后被触发时,它将在所有任务完成后执行。
由于任务通知了你,无论他们是否真的做了什么,而且处理程序保持安静,这确实很有用。
例如,如果您有一个任务 A ,那么您已经运行了几次,直到它按预期运行。
然后连接处理程序 B 以重新启动服务,除非您擦除操作 A 正在执行或更改任务,否则不会发生任何事情。
只要任务 A 未注册任何更改,它就不会触发处理程序 B 。
无论如何,这是ansible 2.2.1的行为。
答案 2 :(得分:0)
您可以添加任务和post_tasks
部分,而不是handlers
,希望它适合您:
---
- hosts: all
become: true
become_user: root
tasks:
- role: common
- role: nginx
- role: tomcat
- role: launchpad
- role: manager
- role: reporting
post_tasks:
- include: /tomcat/handlers/etitomcat_service_ctrl.yml