首页 > 其他分享 >Ansible when: result.stdout.find使用说明【原创】

Ansible when: result.stdout.find使用说明【原创】

时间:2023-01-04 13:34:10浏览次数:37  
标签:JAVA stdout when Ansible result HOME find

0代表成功,-1代表失败
when: result.stdout.find('JAVA_HOME') == -1
当文件中没有JAVA_HOME关键字时执行,等于失败才执行,结果没有JAVA_HOME关键字时执行

when: result.stdout.find('JAVA_HOME') != -1
当文件中有JAVA_HOME关键字时执行,即不等于失败,即为成功,结果有JAVA_HOME关键字时执行

when: result.stdout.find('JAVA_HOME') == 0   和 when: result.stdout.find('JAVA_HOME') != -1 效果一样,结果有JAVA_HOME关键字时执行

举例说明

# cat /tmp/test.sh 
#!/bin/bash
echo "failed"

playbook文件内容

# cat register_test.yaml 
---
- hosts: test 
  remote_user: root
  gather_facts: no        #不采集对方机器的数据,提高执行速度
  tasks:
    - command: /tmp/test.sh
      ignore_errors: True        #如果命令执行不成功,即 echo $?不为0,则在其语句后面的ansible语句不会被执行,导致整个程序中止。
      register: result
    - file: path=/tmp/test state=directory
      #when: result.stdout == 'failed'
      when: result.stdout.find('failed') != -1     # 结果有failed关键字时执行,创建目录/tmp/test
    - name: "打印检查结果"    # 打印result结果
      debug:
        msg: "{{result}}"    # 如果只打印出result变量的结果result.stdout

执行结果

 

 

 result.stdout.find('failed') != -1是模糊匹配,如果要严格匹配

 when: result.stdout == 'failed'

上面'failed'是严格匹配,也可以使用模糊查找,如result.stdout.find('failed') != -1也可以达到相同的效果

 

转载请注明出处!

参考

ansible-playbook如何判断并中断执行_51CTO博客_ansible-playbook命令
https://blog.51cto.com/faded/1762688

ansible-playbook根据shell判断状态 - 技术颜良 - 博客园
https://www.cnblogs.com/cheyunhua/p/14107819.html

Ansible 之 when判断语句使用_51CTO博客_ansible when
https://blog.51cto.com/u_12965094/2601377

标签:JAVA,stdout,when,Ansible,result,HOME,find
From: https://www.cnblogs.com/paul8339/p/17024580.html

相关文章

  • 使用ansible-playbook自动化安装MySQL主从
    【使用自动化安装MySQL主从架构】说明:使用ansible-playbook 自动化安装MySQL主从+ mysqld-exporter的采集数据+ xtrabackup备份【剧本说明】以下文件在roles目录......
  • ansible result.stdout.find('running') != -1 判断状态
    MySQL服务为running时,停止MySQL服务[root@m01ansible-playbook]#cattest_1103.yml----hosts:webservertasks:-file:path=/tmp/{{item}}state=touch......
  • 好题分享、心路历程(力扣618)—— case when
    【题目介绍】该题为力扣618,名为学生地理信息报告。【题型分类】属于casewhen专题。官网标为困难题,符合。【思路分享】这里先分享where过滤的等价写法。关键点......
  • Ansible的条件语句【转】
    Ansible的条件语句1、    前言在有的时候play的结果依赖于变量、fact或者是前一个任务的执行结果,从而需要使用到条件语句。2、    When语句有的时候在特定的主......
  • 在MySQL中,在where后面使用case when
    CREATETABLE`student`(`name`varchar(10)DEFAULTNULL,`subject`varchar(10)DEFAULTNULL,`score`int(10)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARS......
  • Ansible register 变量详解【转】
    编写playbook,我们通过 whoami 这个shell命令去查看当前登录的用户,并将结果赋值给register变量user,然后通过debug模块输出user变量的信息;it@workstation:~/an......
  • Ansible的左膀右臂-Ansible Runner
    前言本文将会介绍AnsibleRunner的基础概念以及笔者的一些实战经验。本文适合的人群为对Ansible提供的功能进行二次封装,并与相关自研平台或服务结合的工程师群体。大家通......
  • 助你快速入门,16 张图教你看懂 Ansible,赶紧收藏~【转】
    Ansible是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误。它基于Python开发,集合了众多运维工具(puppet、cf......
  • 自动化运维工具——ansible详解
    作者:珂儿吖出处:http://www.cnblogs.com/keerya/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律......
  • Android开发 Direct local .aar file dependencies are not supported when building
    问题原因更新了build版本 gradle-7.2后,aar已经不让直接依赖了。在打包apk的时候会出现如下报错信息Directlocal.aarfiledependenciesarenotsupportedwhe......