配置文件被修改后,有可能需要重启程序,此时我们可以配置一个handlers,类似触发器。

1、Handlers 只有在其所在的执行时,才会执行;如果一个任务中定义了notify调用Handlers,但是由于条件判断等原因,

  该任务未执行,那么Handlers同样不会被执行。

2、Handlers只会在play的末尾运行一次;如果想在一个Playbook的中间运行Handlers,则需要使用meta模块实现。例如:- meta:flush_handlers

3、如果一个play在运行到调用Handlers的语句之前失败了,那么这个Handlers将不会被执行。我们可以使用mega模块的--force-handlers选项来强制

  执行Handlers,即使是Handlers所在的Play中途运行失败也能运行

场景1:创建文件

---
- hosts: testremote_user: dwchensenwenbecome: yesbecome_method: sudotasks:- name: make file task1file: path=/data/task1.txt state=touchnotify: task1- name: make file task2file: path=/data/task2.txt state=touchnotify: task2handlers:- name: task1file: path=/data/1.txt state=touch- name: task2file: path=/data/2.txt state=touch

运行结果:

从上图运行结果看出,Handlers执行的顺序与Handlers在playbook中定义的顺序是相同的,与“handler”被notify的顺序无关

场景2:

默认情况下,所有task执行完毕后,才会执行各个handler,并不是执行完某个task后,立即执行对应的handler,

如果想要在执行完某些task后立即执行对应的handler,则需要使用meta模块

---
- hosts: testremote_user: dwchensenwenbecome: yesbecome_method: sudotasks:- name: make file task1file: path=/data/task1.txt state=touchnotify: task1- meta: flush_handlers- name: make file task2file: path=/data/task2.txt state=touchnotify: task2handlers:- name: task1file: path=/data/1.txt state=touch- name: task2file: path=/data/2.txt state=touch

运行结果:

修改程序配置文件的操作使用notify:restart nginx出发Handlers,从而实现nginx的重启

tasks:- name: 修改nginx配置文件copy: src=./nginx.conf dest=/application/nginx/conf/nginx.confnotify: restart nginxhandlers:- name: restart nginxservice: name=nginx state=restarted

若实现Handlers调用Handlers,则直接在Handlers中使用notify选项即可以

handlers:- name: restart nginxservice: name=nginx state=restartednotify: restart memcached- name: restart memcachedservice: name=memcached state=restarted

转载于:https://www.cnblogs.com/mustark/p/11097751.html

ansible-handlers相关推荐

  1. ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件

    24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...

  2. Ansible 入门:安装 简例 playbook应用

    Mysql 内:select unix_timestamp('2016-10-20')  <---> select from_unixtime(147662104) 转时间戳:date + ...

  3. Linux学习总结(七十四)自动化运维之ansible

    一 ansible 介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,c ...

  4. 简单使用ansible-playbook

    1.使用以下命令给客户端安装httpd服务: [root@server ~]# ansible testhost -m yum -a "name=httpd" 192.168.77 ...

  5. Ansible 条件判断 循环 handlers 任务失败 文件管理的使用

    文章目录 Ansible 条件判断 循环 handlers 任务失败 文件管理的使用 1.条件判断 1.1测试多个条件 1.2循环和有条件任务 2. handlers 3. 任务失败 3.1忽略任务失 ...

  6. Ansible中的条件判断、handlers

    1.有条件地运行任务 Ansible可使用conditionals在符合特定条件时执行任务或play. 所以我们可以利用条件来区分不同的受管主机,并根据它们所符合的条件来分配功能角色.Playbook ...

  7. ansible notify和handlers

    原文链接:https://www.cpweb.top/826 参考文章:http://www.zsythink.net/archives/2624   notify 和 handlers,译为通知和处 ...

  8. Ansible免密码登陆

    配置Linux主机无密码访问 生成秘钥 ssh-keygen -t rsaGenerating public/private rsa key pair. Enter file in which to ...

  9. centos7+ansible自动化工具使用

    一.基础介绍 ========================================================================================== 1. ...

  10. Ansible批量安装mysql数据

    1.构建安装目录 mkdir -p /ansible/roles/mysql/{defaults,files,handlers,meta,tasks,templates,vars} defaults ...

最新文章

  1. 微信小程序学习:开发注意点
  2. nginx中配置react-router参数跳转
  3. OMF(Oracle Managed Files)详解及测试
  4. 安卓总结 之 OkHttp使用及源码分析(三)
  5. 【转】漫画:Bitmap算法
  6. pycharm提示your evalluation license has expired解决方法
  7. makefile通用版本
  8. 自然语言处理实践Task4
  9. Matlab 散点 拟合 曲率,有数据点,希望得到一条拟合曲线,再求出这条曲线的曲率,求助!...
  10. (一)开机demo测试及测试流程
  11. 转--计算几何常用算法概览
  12. 使用nexus下载资源
  13. 运维工程师常见软件故障_软件故障分类| 软件工程师
  14. 地图学(何宗宜版)知识点整理
  15. 编程语言【JAVA】编程(4)---摇色子
  16. 用指针写出strcmp函数
  17. 虎扑网站服务器垃圾,虎扑拿下域名hupu.com 游击队摇身一变正规军
  18. Mac电脑卡顿的解决办法
  19. android橡皮擦擦图片功能
  20. 武汉理工大学计算机考研考纲,2018年武汉理工大学825流体力学考试大纲

热门文章

  1. linux安装python3.7
  2. 第4代计算机的cpu,世界最小电脑进化第四代:继续用APU
  3. c++将小数化为二进制_C++中的float内存存储、与十进制的转换
  4. AcWing 877. 扩展欧几里得算法(拓展欧几里得模板)
  5. python爬取天气数据的header_[python爬虫]爬取天气网全国所有县市的天气数据
  6. PySpark︱pyspark.ml 相关模型实践
  7. android studio单个工程文件的代理设置
  8. linux 查找并删除
  9. 动态多点*** 单云双HUB
  10. 前端架构 IMVC 实时热更新模式