条件这东西,也不陌生 不就是if么
在ansible中可以使用 when 关键字
使用情况
可以在变量中定义硬限制并将它与受管主机上的可用内存进行比较
Ansible可以捕获并评估命令的输出,以确定某一任务在执行某一操作前是否已经完成
利用Ansible事实来确定受管主机网络配置,并且决定要发送的模板文件
可以评估CPU数量
将注册的变量与预定义的变量进行比较来确定服务是否已经更改
bool型的判断
可以测试的一个最简单的条件是某一布尔变量时true还是false
举个栗子
---
- name: Simple Boolean Task Demo
host: all
vars:
run_my_task: true
tasks:
- name: httpd package is installed
yum:
name: httpd
when: run_my_task
一些条件的例子
![](https://img-blog.csdnimg.cn/img_convert/86cb96e2e8cf8169601543a8552da793.png)
when关键字
搭配and或or 一次可以测试多个条件
同时 when关键字还支持使用列表 当使用列表的时候 默认使用and关键字
when: >
- ansible_distribution_version == "7.5"
- ansible_kernel == "3.10.0-327.el7.x86_64"
当when和loop结合的时候将会对每个项检查when语句
![](https://img-blog.csdnimg.cn/img_convert/4ce92482dca33c3e2143f3b2dfbf7428.png)