Linux——ansible中handlers

理解

1.按照已有的剧本写法

如果要完成下面这些操作:

1)安装软件包:mysql,httpd,mysql-server,php

2)复制配置文件:web,db,php

3)后续追加配置文件:web额外的配置

如何编排剧本里的task

可能就是写成:

tasks:

  • name: 安装软件包

  • name: copy

  • name: 先启动mysql

  • name: 再启动httpd

  • name: 给nginx或httpd追加配置文件

  • name: 重启服务

......

2.如果task数量非常多

会有一些问题

1)不同类型的任务混在一起,都在tasks里

2)如果task之间顺序编排不合适,最后整个任务没法成功

3)如果剧本,后续往里面额外添加任务,也可能造成整个剧本改task顺序

新加的任务,可能需要额外的服务重启

3.1)后续的任务,可能不是改原剧本,有可能是写新剧本

3.要有一些处理办法,需要

1)让剧本内容,可以大致分类分块写

2)让需要按顺序完成的工作,单独编排

比如,按顺序重启一系列服务

3)额外添加的任务造成的后续操作,比如必须重启服务生效

变成触发动作,不影响tasks部分主体顺序

4.处理办法、技术

ansible剧本中的:处理程序

做法

1)在每个相关task末尾,加一段notify,指定一个要触发程序的名字

tasks的顺序,不影响handlers的顺序

2)在整个剧本最后,和tasks平级

添加handlers部分

3)在handlers里,按顺序写每一个要触发的程序

名称,和每个对应notify里的名称一样

5.于是......稍复杂一点的项目

1)会有多个剧本,剧本之间,有运行的顺序

2)每个剧本里,task之间,也有顺序

3)每个task都可能有notify,对应的handlers里每个程序,也有顺序

4)比如:

4.1)剧本顺序:playbooka.yml

playbookb.yml

4.2)在运行playbooka的时候

如果有多个play,会按顺序执行

4.2.1)先play1

tasks

1 有notify,指向hand1

2

3 有notify,执行hand2

handlers,整体在tasks之后执行

根据编写的顺序执行

先hand2

后hand1

4.2.2)再play2

tasks

handlers

......

4.3)再运行playbookb

......

相关推荐
还是奇怪24 分钟前
Linux - 安全排查 2
linux·运维·安全
牛奶咖啡131 小时前
Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
运维·服务器·软件安装·linux云计算·scp文件远程传输·vi文件编辑·设置yum的阿里云源
难受啊马飞2.01 小时前
如何判断 AI 将优先自动化哪些任务?
运维·人工智能·ai·语言模型·程序员·大模型·大模型学习
会又不会1 小时前
Jenkins-Email Extension 插件插件
运维·jenkins
电脑能手2 小时前
[保姆级教程] 解决不同局域网电脑无法SSH的问题
运维·ssh·电脑
tan77º2 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
czhc11400756632 小时前
Linux 76 rsync
linux·运维·python
你不知道我是谁?3 小时前
负载均衡--四层、七层负载均衡的区别
运维·服务器·负载均衡
蓝易云3 小时前
Qt框架中connect()方法的ConnectionType参数使用说明 点击改变文章字体大小
linux·前端·后端
dyj0954 小时前
【Rancher Server + Kubernets】- Nginx-ingress日志持久化至宿主机
运维·nginx·rancher