Ansible_实施处理程序
一、Ansible配置处理程序
1、处理程序
1️⃣:处理程序是响应由其他任务触发的通知的任务
2️⃣:仅当任务在受管主机上更改了某些内容时,任务才通知其处理程序
3️⃣:每个处理程序具有全局唯一的名称,在playbook中任务块的末尾触发
4️⃣:如果没有任务通过名称通知处理程序,处理程序就不会运行
5️⃣:如果一个或多个任务通知处理程序,处理程序就会在play中的所有其他任务完成后运行一次
6️⃣:因为处理程序就是任务,所以可以在处理程序中使用他们将用于任何其他任务的模块;通常而言,处理程序被用于重新引导主机和重启服务
2、实施处理程序
1️⃣:处理程序可视为非活动任务,只有在使用notify语句显式调用时才会被触发
- 演示实例:
//查看playbook
[root@localhost project]# cat playbook.yaml
---
- hosts: all
tasks:
- name: install httpd
yum:
name: httpd
state: present
notify: //notify关键字指定需要触发的处理程序
- start httpd //要运行处理程序的名称 handlers: //handlers关键字表示处理程序任务列表的开头(与tasks同级别)
- name: start httpd //被触发的处理程序(任务)的名称;注意:必须与notify指定的处理程序的名称相同
service:
name: httpd
state: started //执行play
[root@localhost project]# ansible-playbook playbook.yaml PLAY [all] **************************************************************************************************************************************************************** TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [client.example.com] TASK [install httpd] ******************************************************************************************************************************************************
changed: [client.example.com] RUNNING HANDLER [start httpd] *********************************************************************************************************************************************
changed: [client.example.com] PLAY RECAP ****************************************************************************************************************************************************************
client.example.com : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
2️⃣:一个任务可以在其notify部分中调用多个处理程序。Ansible将notify语句视为数组,并且迭代处理程序名称
- 演示实例:
//查看playbook
[root@localhost project]# cat playbook.yaml
---
- hosts: all
tasks:
- name: install httpd
yum:
name: httpd
state: present
notify:
- start httpd
- install mariadb-server handlers:
- name: start httpd
service:
name: httpd
state: started - name: install mariadb-server
yum:
name: mariadb-server
state: installed //执行play
[root@localhost project]# ansible-playbook playbook.yaml PLAY [all] **************************************************************************************************************************************************************** TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [client.example.com] TASK [install httpd] ******************************************************************************************************************************************************
changed: [client.example.com] RUNNING HANDLER [start httpd] *********************************************************************************************************************************************
changed: [client.example.com] RUNNING HANDLER [install mariadb-server] **********************************************************************************************************************************
changed: [client.example.com] PLAY RECAP ****************************************************************************************************************************************************************
client.example.com : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
二、处理程序的好处
1、处理程序重要事项
1️⃣:处理程序始终按照play的handlers部分指定的顺序运行,它们不按在任务中由notify语句列出的顺序运行,或按任务通知它们的顺序运行
2️⃣:处理程序通常在相关play中的所有其他任务完成后运行,playbook的tasks部分中某一任务调用的处理程序,将等到tasks下的所有任务都已处理后才会运行
3️⃣:处理程序名称存在于各play命名空间中,如果两个处理程序被错误地给予相同的名称,则仅会运行一个
4️⃣:即使有多个任务通知处理程序,该处理程序依然仅运行一次,如果没有任务通知处理程序,它就不会运行
5️⃣:如果包含notify语句的任务没有报告changed结果(例如,软件包已安装并且任务报告ok),则处理程序不会获得通知,处理程序将被跳过,直到有其他任务通知它。只有相关任务报告了changed状态,Ansible才会通知处理程序
2、处理程序用于在任务对受管主机进行更改时执行额外操作,它们不应用作正常任务的替代
Ansible_实施处理程序的更多相关文章
- Ansible_编写循环和条件任务
一.利用循环迭代任务 1️⃣:Ansible支持使用loop关键字对一组项目迭代任务,可以配置循环以利用列表中的各个项目.列表中各个文件的内容.生成的数字序列或更为复杂的结构来重复任务 1.简单循环 ...
- 英特尔 Android* 开发者指南上的对等应用
简单介绍 当没有 Wi-Fi 訪问点或互联网訪问时,Android* 应用可能须要对等连接在两台或多台 Android* 设备之间建立连接. 比方,文件共享应用和多人游戏. 该功能可使用 NFC.蓝牙 ...
- asp.net Ajax Post 请求一般处理程序
其实很早就开通博客园了,一直想写些有价值的东西,供自己以后查阅的同时,也可以帮助别人遇到此类问题时能有一个好的解决方法.但是由于各种原因, 就没有实施我的想法.今天突然很想写下一篇文章,不知道我的第一 ...
- Asp.net web服务处理程序(第六篇)
四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...
- await和async在一般处理程序中的使用
写在前面 有个小项目,前端使用的html页面,那服务端的业务处理就采用最简单的一般处理程序了,之前一直在用,觉得一直用一种方式,确实挺蛋疼的,之前也有了解过async和await的内容.就想着自己折腾 ...
- Asp.net处理程序(第六篇)
四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...
- 谈谈dpdk应用层包处理程序的多进程和多线程模型选择时的若干考虑
看到知乎上有个关于linux多进程.多线程的讨论:http://www.zhihu.com/question/19903801/answer/14842584 自己项目里也对这个问题有过很多探讨和测试 ...
- 强大的数据包处理程序scapy
实验目的 利用scapy工具构造arp.icmp数据包,发送到目标主机,根据应答包推测出目标系统存活情况 实验原理 Scapy是Python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解 ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
随机推荐
- SVN讲解
1.SVN是什么? 代码版本管理工具 它能记住你每次的修改 查看所有的修改记录 恢复到任何历史版本 恢复到已经删除的文件 2.SVN和Git相比,有什么优势? 使用简单,上手快 git没有目录级权限控 ...
- OOUML系列总结及终章回顾
盼望着,盼望着,OO课程终于结束了,但是,此刻的我却感到一丝失落,甚至想着再来一单元岂不妙哉? 目录 总结本单元三次作业架构 四个单元中架构设计及OO方法理解的演进 四个单元中测试理解与实践的演进 课 ...
- 字体图标库 iconfont、iconmoon 的维护管理与使用探索
字体图标库的使用 这是之前留下的博客,由于一堆博客没写完,本周周末做了个补充,可能内容上会有点不太斜街,请见谅... 本文大部分内容是自己结合过往经验探索总结的字体图标维护方式 iconfont-阿里 ...
- ES6 第一天
study in bilibili: es6视频教程(无废话版) 关键字: let 代码块内起作用,不会代码提升 const 常量 ES6结构赋值 作用:解析解构,然后自动赋值,简化程序员代码编写: ...
- Day09_45_Set集合_SortedSet02
SortedSet * TreeSet是SortedSet接口的实现类,TreeSet底层是一个TreeMap,相当于TreeMap中的key. * SortedSet集合是如何实现自动排序的呢? - ...
- 按照自己的思路去研究Spring AOP源码【1】
目录 一个例子 Spring AOP 原理 从@EnableAspectJAutoProxy注解入手 什么时候会创建代理对象? 方法执行时怎么实现拦截的? 总结 问题 参考 一个例子 // 定义一个切 ...
- 0703-可视化工具tensorboard和visdom
0703-可视化工具tensorboard和visdom 目录 一.可视化工具概述 二.TensorBoard 三.Visdom 3.1 visdom 概述 3.2 visdom 的常用操作 3.3 ...
- vue 进阶学习(一): vue 框架说明和与其他框架的对比
vue 框架说明和与其他框架的对比 一.说明 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三 ...
- OO第一单元总结——求导
一.基于度量分析程序结构 (一)第一次作业 (1)设计思路 本次作业只涉及到简单幂函数通过加减运算而复合而成的函数,因此笔者自然的把函数分成了函数本体以及单个的项两个部分,在笔者的设计中两个类的功能如 ...
- 1. APP移动端性能测试基础知识入门
本博客要点 生命周期 堆和栈 垃圾回收 adb命令 Activity的生命周期