首页 > 解决方案 > Ansible 任务失败但继续运行

问题描述

我目前正在为 Ansible 编写一堆检查。

它涉及联系远程机器并执行检查。

根据这次检查的结果,我决定它是否失败。

这是重要的一点:任务本身永远不会失败。它只是返回一条消息。我注册结果然后分析它。基于此,我决定它是否失败。

问题是,我想添加一个允许测试继续运行而不是失败的标志。

所以代码看起来像这样:

- name: Check fail.
  fail:
    msg: "Test failed"
  when: "failfast_flag and <the actual check>"

问题是,如果我制作 failfast_flag false,它不再输出红色。

在这种情况下,我希望它继续进行下一个测试,但我也希望它变成红色,表示它是一个错误/失败。

我该如何做到这一点?

编辑:感谢您的建议,我会尝试一下。

标签: ansible

解决方案


不确定我是否完全理解您的问题,但您可以使用- blockandrescue结构来处理故障并在故障情况下继续执行剧本:

例子:

- block:
    - name: Check fail.
      fail:
      msg: "Test failed"
      when: "failfast_flag and <the actual check>"
  rescue:
    - name: do somthing when the task above fails
      command: <do somthing>

推荐阅读