Ansible-playbook条件语句when的使用

news2024/11/24 19:46:54

目录

  • when关键字
    • 1.基本使用
    • 2.比较运算符
    • 3.逻辑运算符
    • 4.判断变量

when关键字

1.基本使用

当ansible_os_family是redhat的时候,执行安装vim,不是的话跳过

---
- hosts: web
  tasks:
    - name: Install VIM via yum
      yum:
        name: vim-enhanced
        state: installed
      when: ansible_os_family =="RedHat"

    - name: Install VIM via apt
      apt:
        name: vim
        state: installed
      when: ansible_os_family =="Debian"

在这里插入图片描述

在这里插入图片描述

2.比较运算符

在上面的的实例中,我们使用了"=="的比骄傲运算符,ansible中,还支持如下比较运算符

==:比较两个对象是否相等,相等则返回真。可用于比较字符串和数字
!=:比较两个对象是否不等,不等则为真。
:比较两个对象的大小,左边的值大于右边的值,则为真
<:比较两个对象的大小,左边的值小于右边的值,则为真
=:比较两个对象的大小,左边的值大于等于右边的值,则为真
<=:比较两个对象的大小,左边的值小于等于右边的值,则为真
示例

when: ansbible_machine == "x86_64"
when: max_memory <= 512

3.逻辑运算符

在Ansible中,还支持逻辑运算符

and:逻辑与,当左边和右边两个表达式同时为真,则返回真
or:逻辑或,当左右和右边两个表达式任意一个为真,则返回真
not:逻辑否,对表达式取反
():当一组表达式组合在一起,形成一个更大的表达式,组合内的所有表达式都是逻辑与的关系

示例

# 逻辑或
when: ansible_distribution == "RedHat" or ansible_distribution == "Fedora"

# 逻辑与
when: ansible_distribution_version == "7.5" and ansible_kernel == "3.10.0-327.el7.x86_64"

when:
  - ansible_distribution_version == "7.5"
  - ansible_kernel == "3.10.0-327.el7.x86_64"
#判断register注册变量的返回结果
---
- hosts: web
  tasks:
    - name: get postfix server status
      shell: systemctl is-active postfix
      register: result
    - name: print result
      debug: msg="{{result}}"
    - name: restart apache httpd based on postfix status
      service:
        name: httpd
        state: restarted
      when: result.rc == 0                     

在这里插入图片描述

4.判断变量

defined:判断变量是否已定义,已定义则返回真
undefined:判断变量是否未定义,未定义则返回真
none:判断变量的值是否为空,如果变量已定义且值为空,则返回真

- hosts: test
  gather_facts: no
  vars:
    testvar: "test"
    testvar1:
  tasks:
    - debug:
        msg: "testvar is defined"
      when: testvar is defined
    - debug:
        msg: "testvar2 is undefined"
      when: testvar2 is undefined
    - debug:
        msg: "testvar1 is none"
      when: testvar1 is none

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mac安装brew

mac安装brew 安装brew 安装brew 第一步&#xff1a;执行. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"第二步&#xff1a;输入开机密码 第三步&#xff1a;回车继续。等待安装完成 第四步&#xff1a;根…

最新盘点!上海值得加入的互联网公司有哪些?(文末附招聘岗位)

暑假结束了&#xff0c;除了迎来了青春热烈的开学季以外&#xff0c;也带来了打工人备受期待的金九银十秋招季。 我们在找工作时&#xff0c;每个人都期待能遇到一个“神仙公司”&#xff0c;譬如丰厚的薪水、优越的晋升通道、融洽的同事关系、良好的work-life balance以及自由…

KubeSphere 社区双周报 | KubeKey 新增网络插件 Hybridnet | 2023.08.18-08.31

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2023.08.18-2023.…

Stable Diffusion中的ControlNet插件

文章目录 ControlNet的介绍及安装ControlNet的介绍ControlNet的安装 ControlNet的功能介绍ControlNet的应用与演示 ControlNet的介绍及安装 ControlNet的介绍 ControlNet 的中文就是控制网&#xff0c;本质上是Stable Diffusion的一个扩展插件&#xff0c;在2023年2月份由斯坦…

红米手机使用google play

开启&#xff1a; 1.在 Google Play 支持的设备列表内的小米/红米手机已预装谷歌服务&#xff0c;我们只需要安装Play 商店。 1.开启谷歌服务: 设置 -> 帐号与同步 > 谷歌基础服务 2.安装 Play 商店: 在应用商店搜索 [google play] &#xff0c;安装[Google Play 商店] …

NPM 常用命令(一)

目录 1、npm 1.1 简介 1.2 依赖性 1.3 安装方式 2、npm access 2.1 命令描述 2.2 详情 3、npm adduser 3.1 描述 4、npm audit 4.1 简介 4.2 审计签名 4.3 操作示例 4.4 配置 audit-level dry-run force json package-lock-only omit foreground-scripts …

更改SVG矢量图片的颜色

问题:我从网上找的svg图片,颜色一直是黑色的,和下边的用户管理模块、卷题管理等模块的图标对不起来,看起来很怪。 办法: 1.直接在你的编程软件中 ctrl + alt +F,全局搜索“组织管理” 找到组织管理对应的文件,然后双击点进去 2.找到icon 这里对应的icon的属性值就是矢…

代理IP的需求量为什么越来越大?如何选择适合您的全球代理IP?

在当今信息爆炸的时代&#xff0c;代理IP已成为大数据领域一项必不可少的工具。越来越多的企业和个人使用代理IP来进行互联网业务&#xff0c;这导致代理IP的需求量不断增加。这是因为代理IP不仅可以帮助用户进行网络爬虫和数据采集&#xff0c;还能够保护个人隐私和网络安全&a…

如何产生潜在客户:增加公司的销售额

图片来源于&#xff1a;SaleSmartly官网 数字营销拥有大量资源可以帮助您增加业务收入。您可以实施多种有关如何产生潜在客户的策略。这是买家旅程中的重要一步&#xff0c;您可以识别潜在客户并定义需要做什么来帮助他们决定购买您的产品或服务。 毫无疑问&#xff0c;征服潜在…

uniapp授权小程序隐私弹窗效果demo(整理)

<template> <view class"dealBox"><view class"txtBox padding10"><!-- 查看协议 -->在您使用施工现场五星计划小程序之前&#xff0c;请仔细阅读<text class"goToPrivacy" click"handleOpenPrivacyContract&qu…

常用激活函数整理

最近一边应付工作&#xff0c;一边在补足人工智能的一些基础知识&#xff0c;这个方向虽然新兴&#xff0c;但已是卷帙浩繁&#xff0c;有时不知从何入手&#xff0c;幸亏有个适合基础薄弱的人士学习的网站&#xff0c;每天学习一点&#xff0c;积跬步以至千里吧。有像我一样学…

产品经理进行用户分层 常见的4大方法

用户分层对产品开发非常重要&#xff0c;通过对用户进行分层&#xff0c;我们可以更好地理解不同用户群体的需求、行为和偏好&#xff0c;从而更精准定位和设计产品&#xff0c;有利于提高市场竞争力。 如果不进行用户分层可能导致产品经理不了解用户需求&#xff0c;无法提供个…

ODrive解析移植(一)—— 国产替代方案(VScode版移植)

目录 一、ODrive简介1.1、 github下载 二、ODrive官方版本的问题三、国产化方案3.1、版本0.5.1与0.5.6的区别3.2、移植说明3.2.0、修改“tup.config.default”文件名为“tup.config”&#xff0c;打开屏蔽“v3.6-56V”&#xff0c;3.2.1、修改死区时间&#xff0c;3.2.2、修改采…

2023年您需要虚拟助手的 5个迹象

您的企业今年有以收入为中心的战略目标要实现。然而&#xff0c;新的增长往往伴随着您现有员工的新责任。工作负载增加。团队达到最大容量。超负荷的员工表现出倦怠的迹象。在这些时候&#xff0c;企业主通常会意识到雇用虚拟助理 &#xff08;VA&#xff09; 提供支持的好处。…

服务器上使用screen的学习记录

服务器上使用screen 训练模型的时候&#xff0c;花费时间是很长的&#xff0c;不可能一直挂在桌面上。所以就想到用screen了。 记录一下简单的操作指令。 创建screen screen -S roof # 新建一个名字为name的窗口&#xff0c;并进入到该窗口中进入后打开环境&#xff0c;运…

一套成熟在用的Spring Cloud工程项目数字化管理云平台源码

技术架构&#xff1a; 微服务JavaSpring Cloud VueUniApp MySql 开发语言&#xff1a;Java 开发工具&#xff1a;Idea 前端框架&#xff1a;Vue 后端框架&#xff1a;Spring Cloud 数 据 库&#xff1a;MySql 移 动 端&#xff1a;UniApp 系统端口&#xff1a;PC端&…

虚引用真的不影响对象的生命周期吗?99%的人都错了

Java的四大引用&#xff0c;大家都很熟悉吧&#xff1a; 强应用&#xff1a;正常代码中的引用。一个对象能通过强应用访问到&#xff0c;那它就永远不会被回收软引用&#xff1a;比强引用弱一级的引用&#xff0c;内存不足时引用指向的对象会被回收弱引用&#xff1a;比软引用…

现货白银投资快速入门的方法

虽然在现货白银投资之中有很多&#xff0c;所谓的速成班都是不靠谱的&#xff0c;他们一般都是营销的噱头&#xff0c;但是会普通投资者来说&#xff0c;通过一些方法的训练&#xff0c;可以实现快速入门。所谓的快速入门&#xff0c;就是能够在市场中掌握一定的投资方法&#…

手机建模自定义方法,你会用了吗?

易模App借助影像即可完成三维建模&#xff0c;除了在各个建模模式中直接拍摄采集数据&#xff0c;还用开放了宽容度更高的建模方法——自定义建模。 自定义方法可以使用在【人脸模式】【人像模式】【主体模式】【场景模式】中&#xff0c;上传满足建模条件的视频或照片组即可实…

小编亲测八款Ai工具,建议收藏,最后一个你懂的

随着AI大模型不断更新迭代&#xff0c;AI应用也呈现出爆炸式的增长趋势&#xff0c;而利用人工智能工具提高工作效率&#xff0c;已经成为今年来越来越受欢迎的工作方式。除了大名鼎鼎的chatgpt之外&#xff0c;小编在体验了超多各种类型、各种功能的AI工具后&#xff0c;给大家…