Ansible的条件判断介绍和使用方式详解!
Ansible的条件判断介绍和使用方式详解
小编为大家解答Ansible的条件判断介绍和使用方式详解的IT知识,具体详情如下:
前言
很多时候,某些场景下playbook的结果依赖于变量、fact或者是前一个任务的执行结果,或者有的时候,我们会基于上一个task执行返回的结果而决定如何执行后续的task,这个时候就需要用到条件判断。

条件语句在Ansible中的使用场景:
- 在目标主机上定义了一个硬限制,比如:目标主机的发行版本必须是RedHat,才能执行该task;
- 捕获一个命令的输出,根据命令输出结果的不同以触发不同的task;
- 根据不同目标主机的facts,以定义不同的task;
- 根据目标机的cpu或者memory的大小,对相关应用性能进行调优;
- 用于判断某个服务的配置文件是否发生变更,以确定是否需要重启服务等。
下面就介绍一些常用的条件判断
when 关键字
1. when 关键字使用
在ansible中,when是条件判断的最常用关键字。如在安装包的时候,需要指定主机的操作系统类型,可以使用when语句来做判断。when关键字后面跟着的是python的表达式,在表达式中你能够使用任何的变量或者fact,当表达式的结果返回的是false,便会跳过本次的任务。
示例:
---
- name: install wget package
hosts: all
tasks:
- name: Install wget
yum:
name: wget
state: installed
when: ansible_os_family == "RedHat"
2. when 配合比较运算符
以上示例,我们使用了”==“的比较运算符,在ansible中,还支持如下比较运算符:
- ==:比较两个对象是否相等,相等则返回真。可用于比较字符串和数字
- !=:比较两个对象是否不等,不等则为真。
- :比较两个对象的大小,左边的值大于右边的值,则为真
- <:比较两个对象的大小,左边的值小于右边的值,则为真
- =:比较两个对象的大小,左边的值大于等于右边的值,则为真
- <=:比较两个对象的大小,左边的值小于等于右边的值,则为真
如:
when: ansible_disibution == "CentOS"
when: ansible_machine == "x86_64"
when: max_memory <= 512
3. 逻辑运算符
- and:逻辑与,当左边和右边两个表达式同时为真,则返回真
- or:逻辑或,当左右和右边两个表达式任意一个为真,则返回真
- not:逻辑否,对表达式取反
- ():当一组表达式组合在一起,形成一个更大的表达式,组合内的所有表达式都是逻辑与的关系
相关阅读
-
telnet命令不可用 telnet不是内部或外部命令怎么办
今天小编介绍telnet不是内部或外部命令怎么办的话题,关于telnet命令不可用 telnet不是内部或外部命令怎么办,接下来IT袋小编就来介绍。 在使用win10系统的过程中想必大家都遇到过一个共同的
-
win10玩游戏比win7流畅吗 win7玩游戏流畅还是win10
今天小编介绍win10玩游戏比win7流畅吗方面的介绍,关于win10玩游戏比win7流畅吗 win7玩游戏流畅还是win10,下面IT袋为您详细介绍 现在不少的IT袋网友都会在电脑上玩游戏。同时,也有人会提出疑
-
win10怎么修改电脑的开机密码 电脑开机密码设置步骤
您可能不了解win10怎么修改电脑的开机密码和电脑开机密码设置步骤的介绍,很不错的方法小知识,建议收藏哦! 在我们日常生活中,最常见的就是开机密码了,而电脑作为我们使用频率最高
-
win10系统电脑蓝屏怎么解决 win10电脑蓝屏了怎么处理方法
文章摘要:win10系统电脑蓝屏怎么解决IT技巧方面的经验,关于win10系统电脑蓝屏怎么解决 win10电脑蓝屏了怎么处理方法,下面小编为您详细解答 win10系统是一款非常优秀的智能电脑系统,在全


