ansible-handlers
配置文件被修改后,有可能需要重启程序,此时我们可以配置一个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相关推荐
- ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件
24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...
- Ansible 入门:安装 简例 playbook应用
Mysql 内:select unix_timestamp('2016-10-20') <---> select from_unixtime(147662104) 转时间戳:date + ...
- Linux学习总结(七十四)自动化运维之ansible
一 ansible 介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,c ...
- 简单使用ansible-playbook
1.使用以下命令给客户端安装httpd服务: [root@server ~]# ansible testhost -m yum -a "name=httpd" 192.168.77 ...
- Ansible 条件判断 循环 handlers 任务失败 文件管理的使用
文章目录 Ansible 条件判断 循环 handlers 任务失败 文件管理的使用 1.条件判断 1.1测试多个条件 1.2循环和有条件任务 2. handlers 3. 任务失败 3.1忽略任务失 ...
- Ansible中的条件判断、handlers
1.有条件地运行任务 Ansible可使用conditionals在符合特定条件时执行任务或play. 所以我们可以利用条件来区分不同的受管主机,并根据它们所符合的条件来分配功能角色.Playbook ...
- ansible notify和handlers
原文链接:https://www.cpweb.top/826 参考文章:http://www.zsythink.net/archives/2624 notify 和 handlers,译为通知和处 ...
- Ansible免密码登陆
配置Linux主机无密码访问 生成秘钥 ssh-keygen -t rsaGenerating public/private rsa key pair. Enter file in which to ...
- centos7+ansible自动化工具使用
一.基础介绍 ========================================================================================== 1. ...
- Ansible批量安装mysql数据
1.构建安装目录 mkdir -p /ansible/roles/mysql/{defaults,files,handlers,meta,tasks,templates,vars} defaults ...
最新文章
- 微信小程序学习:开发注意点
- nginx中配置react-router参数跳转
- OMF(Oracle Managed Files)详解及测试
- 安卓总结 之 OkHttp使用及源码分析(三)
- 【转】漫画:Bitmap算法
- pycharm提示your evalluation license has expired解决方法
- makefile通用版本
- 自然语言处理实践Task4
- Matlab 散点 拟合 曲率,有数据点,希望得到一条拟合曲线,再求出这条曲线的曲率,求助!...
- (一)开机demo测试及测试流程
- 转--计算几何常用算法概览
- 使用nexus下载资源
- 运维工程师常见软件故障_软件故障分类| 软件工程师
- 地图学(何宗宜版)知识点整理
- 编程语言【JAVA】编程(4)---摇色子
- 用指针写出strcmp函数
- 虎扑网站服务器垃圾,虎扑拿下域名hupu.com 游击队摇身一变正规军
- Mac电脑卡顿的解决办法
- android橡皮擦擦图片功能
- 武汉理工大学计算机考研考纲,2018年武汉理工大学825流体力学考试大纲
热门文章
- linux安装python3.7
- 第4代计算机的cpu,世界最小电脑进化第四代:继续用APU
- c++将小数化为二进制_C++中的float内存存储、与十进制的转换
- AcWing 877. 扩展欧几里得算法(拓展欧几里得模板)
- python爬取天气数据的header_[python爬虫]爬取天气网全国所有县市的天气数据
- PySpark︱pyspark.ml 相关模型实践
- android studio单个工程文件的代理设置
- linux 查找并删除
- 动态多点*** 单云双HUB
- 前端架构 IMVC 实时热更新模式