示例:安装nginx

---
- hosts: hadoop #指定主机组
remote_user: root #远程执行命令的用户
gather_facts: no #是否获取远程主机的信息 tasks:
- name: install nginx
yum:
name: nginx
state: present
notify: restart nginx #通知机制,当这个任务执行的时候,通知handlers执行
- name: start nginx server
service:
name: nginx
state: started handlers:
- name: restart nginx
service:
name: nginx
state: restarted

注:在剧本编写完以后,可以使用--syntax-check检查剧本的语法是否有问题,使用--check或者-C来预执行剧本。

handlers的用处:一般是当修改某个配置文件的时候,通过handlers来执行某个任务。

一般情况下,handlers的执行需要在所以的tasks执行完以后才开始执行,那么如果想要在执行某一个tasks以后就执行对应的handlers呢?这个时候需要使用一个模块:meta

用法: - meta: flush_handlers

如:

---
- hosts: hadoop #指定主机组
remote_user: root #远程执行命令的用户
gather_facts: no #是否获取远程主机的信息 tasks:
- name: install nginx
yum:
name: nginx
state: present
notify: restart nginx #通知机制,当这个任务执行的时候,通知handlers执行
-meta: flush_handlers
- name: start nginx server
service:
name: nginx
state: started handlers:
- name: restart nginx
service:
name: nginx
state: restarted

在某些情况下,可能需要同时调用多个handlers,或者handlers调用其他的handlers。

1、一个任务同时调用多个handlers。

- name: test
command: /test.sh
notify:
- restart nginx
- restart mysql

2、要handlers调用handlers,则在handlers中直接使用notify

handlers:
- name: test
service:
name: nginx
state: restarted
notify: restart mysql

当剧本执行失败以后,handlers可能并没有被触发,也就不会执行了,如果想不管任务是否成功执行,都强制执行handlers。

在这个时候,可以在执行playboox的时候,添加--force-handlers来强制执行handlers

ansible handlers的更多相关文章

  1. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

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

  2. ansible 自动化运维

    Ansible 自动化运维 ansible安装epel #yum list all *ansible*#yum install *ansible*#yum info ansible#rpm -ql a ...

  3. ansible playbook基本操作

    一.ansible playbook简单使用 相当于是把模块写入到配置文件里面 vim /etc/ansible/test.yml //写入如下内容: --- - hosts: 127.0.0.1 r ...

  4. Ansible 利用playbook批量部署mariadb

    环境说一下 192.168.30.21     ansible 192.168.30.25     client1 192.168.30.26     client2 这里我的ansible环境已经部 ...

  5. ansible 流程控制

    ansible 流程控制 使用when判断主机名 - hosts: rsync_server tasks: - name: Install rsyncd Server yum: name: rsync ...

  6. Ansible--04 ansible 流程控制

    ansible 流程控制 playbook 条件语句 不管是 shell 还是各大编程预言中,流程控制,条件判断都是必不可少的,在我们使用 Ansible的过程中,条件判断的使用频率都非常高. 例如: ...

  7. Ansible playbooks(任务、角色、模板、变色器、)

    playbooks配置文件: [root@ansible ~]# vim /etc/ansible/hosts [test01] 192.168.200.114 [test02] 192.168.20 ...

  8. ansible笔记(12):handlers的用法

    ansible笔记():handlers的用法 这篇文章会介绍playbook中handlers的用法. 在开始介绍之前,我们先来描述一个工作场景: 当我们修改了某些程序的配置文件以后,有可能需要重启 ...

  9. 3、Ansible playbooks(Hosts、Users、tasks、handlers、变量、条件测试(when、迭代)、templates)

    Ansible playbooks playbook是由一个或多个“play”组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲 ...

随机推荐

  1. 我自己用C++写了个GMM(Gaussian mixture model)模型

    我自己用C++写了个GMM(Gaussian mixture model)模型 Written for an assignment 之前粗粗了解了GMM的原理,但是没有细看,现在有个Assignmen ...

  2. php批量检测并去除BOM头的代码

    开发中会遇到BOM头, 导致程序无法执行. 浏览器返回接口如下图: 去除BOM头解决方法:<?phpini_set('memory_limit','1024M'); function check ...

  3. 对于Element-ui分页进行再次的封装使用

    这是我项目的分页的目录结构,话不多说,直接上代码. <template> <div class="pagination-container"> <el ...

  4. 【DRF框架】路由组件

    视图组件涉及的路由补充: from rest_framework.viewsets import ViewSetMixin 对路由进行了重新的分发,重写了as_view() 方法,重新封装了请求方法 ...

  5. LVS实现健康性检查功能

    LVS高可用性 Director不可用,整个系统将不可用:SPoF Single Point of Failure 解决方案:高可用 keepalived heartbeat/corosync 某RS ...

  6. 【深度学习】基于Pytorch的ResNet实现

    目录 1. ResNet理论 2. pytorch实现 2.1 基础卷积 2.2 模块 2.3 使用ResNet模块进行迁移学习 1. ResNet理论 论文:https://arxiv.org/pd ...

  7. 学习使用Django2 前台页面展示

    Django  2.1  python 3.7 创建一个虚拟环境 python  -m  venv  虚拟环境名称 进入虚拟环境 下载django pip install  django==2.1 创 ...

  8. 为LPC1549 LPCXpresso评估板开发基于mbed的项目

    本文将主要介绍如何使用Visual Studio和VisualGDB为LPC1549 LPCXpresso开发板创建一个使用mbed框架的基础项目. LPC1549 LPCXpresso开发板载一个L ...

  9. P1280 尼克的任务[区间覆盖dp]

    题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...

  10. 大数据之路week06--day07(Linux中的mysql的离线安装)

    这里我提供 服务端和客户端的两个jar包的百度云,也是我使用的 链接:https://pan.baidu.com/s/11a3LT-ENZ8n9IF19-VjmWA 提取码:bdls 离线安装Mysq ...