当我想为服务扮演角色时,我经常写这种模式(本示例中使用的是Mongo,但是与其他任何服务(如Nginx,MySQL,Redis,Bind,ElasticSearch等)相同。 。我要实现的逻辑是:
当我用Ansible编写此代码时,我会这样做:
角色/mongo/tasks/main.yml
---
- name: Install Mongo
yum:
name: mongodb-org
state: present
- name: Configure mongo
template:
src: mongod.conf.j2
dest: /etc/mongod.conf
notify:
- restart mongod
- name: Start Mongo
service:
name: mongod
state: started
角色/mongo/handlers/main.yml
---
- name: restart mongod
service:
name: mongod
state: restarted
但是,这与我上面所写的并不完全相同。上面代码的逻辑是
结果是我第一次运行剧本时,我
我希望我可以跳过最后一次重启。在我的脑海中,我认为“启动Mongo”任务应清除“重新启动Mongod”处理程序。
是否可以取消处理程序通知?
或者,有没有更好的方式编写我的剧本来实现我真正想要的逻辑?