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

......

相关推荐
FoldWinCard2 分钟前
云原生 --- lvs
运维·服务器·lvs
代码AC不AC2 分钟前
【Linux】Socket编程TCP
linux·tcp·socket编程
扛枪的书生3 分钟前
SeaweedFS 学习总结
linux
minglie130 分钟前
香橙派zero3配个iic屏显示ip
linux·学习
MXsoft61839 分钟前
成熟的自动化运维平台是什么样的?
运维·数据库·自动化
edwarddamon44 分钟前
SSH 指定端口建立隧道:打通内网访问完整教程
linux·命令行
ShirleyWang0121 小时前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s
酷可达拉斯1 小时前
Linux操作系统-shell编程(1)
linux·运维·服务器
j7~1 小时前
【Linux】二十四.线程篇一《一文吃透Linux线程全面解析:概念、内存管理、优缺点与用途》
linux·运维·服务器·页表·线程概念·分页式存储管理·缺页异常
ShirleyWang0122 小时前
DAY01 K3s 私有化部署排障复盘与 SOP
linux·服务器·k8s·k3s·企业部署