ansible(十四)判断

本文详细介绍了Ansible中when关键字的使用方法,包括各种比较运算符、逻辑运算符和特殊判断条件如definedsuccess等。还涵盖了如何判断路径、字符串属性及数值特征,并展示了version和集合判断的用法。

绝大多数语言中,都使用"if"作为条件判断的关键字,而在ansible中,条件判断的关键字是"when"
我们可以使用when关键字为任务指定条件,条件成立,则执行任务,条件不成立,则不执行任务
在ansible中,我们可以使用如下比较运算符

== :比较两个对象是否相等,相等为真
!= :比较两个对象是否不等,不等为真
>:比较两个值的大小,如果左边的值大于右边的值,则为真
< :比较两个值的大小,如果左边的值小于右边的值,则为真
>= :比较两个值的大小,如果左边的值大于右边的值或左右相等,则为真
<= :比较两个值的大小,如果左边的值小于右边的值或左右相等,则为真

可用的逻辑运算符如下
and :逻辑与,当左边与右边同时为真,则返回真
or :逻辑或,当左边与右边有任意一个为真,则返回真
not :取反,对一个操作体取反,
( ) :组合,将一组操作体包装在一起,形成一个较大的操作体
判断变量的-些tests
defined :判断变量是否已经定义,已经定义则返回真
undefind :判断变量是否已经定义,未定义则返回真
none :判断变量值是否为空,如果变量已经定义,但是变量值为空,则返回真
判断执行结果的一些tests
success或succeeded :通过任务的返回信息判断任务的执行状态,任务执行成功则返回真
failure或failed :通过任务的返回信息判断任务的执行状态,任务执行失败则返回真
change或changed :通过任务的返回信息判断任务的执行状态,任务执行状态为changed则返回真
skip或skipped: 通过任务的返回信息判断任务的执行状态,当任务没有满足条件,而被跳过执行时,则返回真

判断路径的一些tests
注:如下tests的判断均针对于ansible主机中的路径,与目标主机无关
file :判断路径是否是一个文件,如果路径是一个文件则返回真
directory :判断路径是否是一个目录,如果路径是一个目录则返回真
link :判断路径是否是一个软链接,如果路径是一个软链接则返回真
mount:判断路径是否是一个挂载点,如果路径是一个挂载点则返回真
exists:判断路径是否存在,如果路径存在则返回真

判断字符串的一些tests
lower:判断包含字母的字符串中的字母是否是纯小写,字符串中的字母全部为小写则返回真
upper:判断包含字母的字符串中的字母是否是纯大写,字符串中的字母全部为大写则返回真

判断整除的一些tests
even :判断数值是否是偶数,是偶数则返回真
odd :判断数值是否是奇数,是奇数则返回真
divisibleby(num) :判断是否可以整除指定的数值,如果除以指定的值以后余数为0,则返回真

其他的一些test
version:可以用于对比两个版本号的大小,或者与指定的版本号进行对比,使用语法为version(‘版本号’, '比较操作符’)当使用version时,支持多种风格的比较操作符,你可以根据自己的使用习惯进行选择,version支持的比较操作符如下:
大于: >, gt
大于等于: >=, ge
小于:<<,It
小于等于: <=, le
等于: ==, =, eq
不等于: !=, <> , ne

subset: 判断一个list是不是另一个list的子集,是另一个list的子集时返回真
superset :判断一个list是不是另一个ist的父集,是另一个list的父集时返回真

(1)判断大于1
在这里插入图片描述
在这里插入图片描述

(2)and
回顾
在这里插入图片描述
剧本
在这里插入图片描述

另一种形式
在这里插入图片描述
执行
在这里插入图片描述
(3)or
在这里插入图片描述
在这里插入图片描述

(4)==
在这里插入图片描述
在这里插入图片描述
(5)!=
在这里插入图片描述
在这里插入图片描述
因为我们没有testabc这个目录所以会报错,无法执行下面的语句
下面我们解决这个问题ignore_errors
在这里插入图片描述
在这里插入图片描述
(6)exists
存在的目录
在这里插入图片描述
在这里插入图片描述
不存在的目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(7)defined
在这里插入图片描述
在这里插入图片描述

(8)success,failure,skip在这里插入图片描述
在这里插入图片描述
(9)file,directory,link,mount
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(10)upper,lower
在这里插入图片描述
在这里插入图片描述
(11)odd,even,divisibleby
在这里插入图片描述

在这里插入图片描述
(12)其他操作符
在这里插入图片描述
在这里插入图片描述

(13)subset
在这里插入图片描述
在这里插入图片描述
(14)判断是不是字符串或者数字
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

block模块

(1)一个判断执行多个任务
在这里插入图片描述
在这里插入图片描述

(2)block结合rescue
先看一个例子
在这里插入图片描述
在这里插入图片描述
用block实现
在这里插入图片描述
在这里插入图片描述

示例
在这里插入图片描述
在这里插入图片描述
示例
在这里插入图片描述
在这里插入图片描述

示例
在这里插入图片描述
在这里插入图片描述

(3)always
在这里插入图片描述
在这里插入图片描述

fail模块

(1)只输出了1 2
在这里插入图片描述
在这里插入图片描述
(2)只输出了1
在这里插入图片描述
在这里插入图片描述
(3)只有shell changed了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)failed_when

在这里插入图片描述
在这里插入图片描述
(5)changed_when

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值