failed_when标记tasks的状态

failed_when的作用

failed_when只要用来手动标记shell脚本运行结果为错误(手动抛异常)
一般用在ansible和shell脚本结合的情况下.
shell模块只能判断shell脚本是否执行,shell脚本一旦执行,每次运行的结果都是change

针对shell脚本每次运行结果都是change的情况,我们可以使用register变量接收shell运行结果, 判断变量值后,手工将运行结果标记为错误.
或者使用fail模块输出错误信息


通过判断register变量来标记错误

---
- name: 判断register变量值来标记错误
  hosts: all
  tasks:
    - name: 运行一个shell脚本
      shell: /usr/local/bin/create_user.sh
      register: run_shell_result
      failed_when: "'Password missing' in run_shell_result.stdout"
      # 当字符串'Password missing'在run_shell_result.stdout字段中时才标记运行结果为失败

手动修改change状态并输出错误信息

---
- name: test
  hosts: servera.lab.example.com
  tasks:
    - shell: echo "test"
      changed_when: false  # 强制标记change状态为false
    - fail:
        msg: "shell_fail"	# 手动抛出fail信息

changed_when结合notify通知调用handlers处理器

在这里插入图片描述

fail结合when手动输出错误

---
- name: 判断register变量来手动输出错误
  hosts: all
  tasks:
  	- name: 运行一个创建用户的脚本
  	  shell: /usr/local/bin/create_user.sh
  	  register: shell_run_result
  	  ignore_errors: yes
  	- name: 判断变量值来手动输出错误
  	  fail:
  	  	msg: "创建的密码错误"
  	  when: "'Password missing' in shell_run_result.stdout"	

fail模块手动输出错误

---
- name: 手动输出错误和忽略错误
  hosts: all
  tasks:
    - name: 手动输出错误
      fail:
        msg: 这是手动输出fail测试
      ignore_errors: yes	# 忽略这个错误

    - fail:
        msg: 这是第二个手动输出错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值