Linux企业实战之自动化运维工具(二十一)——Ansible(15)

ansible-block及playbook中的错误处理

  • block将多个任务组成一个块
    我们发现如果使用上述的判断方法加上task来指定动作,判断成功后我们只能执行一个动作,那么如果想要执行多个动作怎么办?
    也许我们可以让它进行多次判断:
    比如判断条件成立后我们要执行3个动作,就写3次判断,让它每次判断成功后执行一个动作

    在这里插入图片描述
    在这里插入图片描述
    但这样明显很麻烦,而且也不专业,所以此时我们就需要block来帮助我们实现这个需求:
    在这里插入图片描述
    可以看到task1不在block中,也输出了,而block中的两个动作也执行了
    在这里插入图片描述
  • block结合rescue实现错误处理功能
    在这里插入图片描述
    在这里插入图片描述
    上述写法是我们之前使用的普通写法,使用when判断错误,而block可以结合rescue来判断错误,无须使用when
    在这里插入图片描述
    在这里插入图片描述
    rescue即如果block中的动作执行失败,则执行rescue中的内容
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • block+rescue+always
    在这里插入图片描述
    在这里插入图片描述
  • fail模块:手动报错
    在这里插入图片描述
    在这里插入图片描述
写法2:指定错误信息
---
- hosts: testB
  remote_user: root
  tasks:
  - debug:
      msg: "1"
  - debug:
      msg: "2"
  - fail:
      msg: "Interrupt running playbook"
  - debug:
      msg: "3"
  - debug:
      msg: "4"
  • fail模块:自定义错误
    在这里插入图片描述
    在这里插入图片描述
    注意:这里的’error’必须带引号,即在使用判断时,条件中包含的字符串要带引号

  • 不符合报错信息时,不会报错,会执行下面的动作
    在这里插入图片描述
    在这里插入图片描述

  • failed_when关键字:自定义错误
    在这里插入图片描述
    在这里插入图片描述

  • changed_when关键字:改变状态为changed
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意:changed_when关键字的作用是改变状态为changed。还记得handler模块吗?只有状态为changed的动作,才会执行对于handler模块中的内容。所以此关键字可以和handler模块在必要时结合使用

  • changed_when关键字:设置为false时,表示改变状态不为changed
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值