04@ansible playbook语句详解
1|0文章目录
2|0playbook条件语句
我们使用
Ansible
的过程中,条件判断的使用频率极其高,不管是shell
还是各大编程语言中,流程控制,条件判断这些都是必不可少的例如:
1.我们使用不同的系统的时候,可以通过判断系统来对软件包进行安装。
2.在nfs
和rsync
安装过程中,客户端服务器不需要推送配置文件,之前我们都是写多个play,会影响效率。
3.我们在源码安装nginx的时候,执行第二遍就无法执行了,此时我们就可以进行判断是否安装过。
3|0一、根据不同的操作系统安装apache
3|11、示例
3|22、使用括号对条件进行分组
3|33、指定多条件为列表
3|44、条件运算
3|55、rsync(剧本)
3|66、register命令(执行结果保存变量,通过when语句进行判断)
4|0二、playbook循环语句
当我们创建目录之类的操作时,创建2个目录就要写两个file模块来创建,如果要创建100个,就需要写100个file模块!!!!害----- 当然不是,只要用循环即可,就可减少代码的重复性
4|11、启动多个服务
4|22、定义变量(循环)
4|33、字典循环
5|0三、playbook——handlers
handler用来执行某些条件下的任务,比如当配置文件发生变化的时候,通过notify触发handler去重启服务。在saltstack中也有类似的触发器,写法相对Ansible简单,只需要watch,配置文件即可
6|0四、playbook任务标签
默认情况下,Ansible在执行一个playbook时,会执行playbook中定义的所有任务,Ansible的标签(tag)功能可以给单独任务甚至整个playbook打上标签,然后利用这些标签来指定要运行playbook中的个别任务,或不执行指定的任务
6|11、标签方式
6|22、标签的使用
6|33、使用标签(-t)
7|0五、playbook(文件复用)
在编写playbook的过程中,写多个playbook没有办法一键执行,这样我们需要单个playbook去执行,很鸡肋,所以在playbook中有一个功能,叫做
include
用来动态调用task任务列表
7|11、示例一
7|22、示例二
7|33、示例三
8|0六、playbook(忽略错误)
默认playbook会检测tasks执行的返回状态,如果遇到错误则会立即终止playbook的后续tasks执行,然鹅有些时候playbook即使执行错误了也要让其继续执行
playbook加入参数:ignore_errors: yes 表忽略错误
9|0六、playbook(错误处理)
如上所述,当task执行失败时,playbook将不再继续执行,包括如果在task中设置了handler也不会被执行
但是我们可以采取强制措施…
9|11、强制调用handler
9|22、抑制changed
被管理主机没有发生变化,可以使用参数将change状态改为o k
__EOF__
本文链接:https://www.cnblogs.com/zeny/p/15121533.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:ଲ小何才露煎煎饺,转载请注明原文链接:https://www.cnblogs.com/zeny/p/15121533.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报