如果输出包含 ansible 中的内容,如何实现忽略错误结果?

sor*_*rin 4 ansible

我有一个有时会失败的 ansible 任务,当且仅当输出包含特定文本时,我想忽略它的失败。

逻辑听起来像:如果结果代码 != 0 并且输出中的“xxx”成功,否则失败。

udo*_*dan 7

任何 Ansible 任务都可以有一个failed_when选项,该选项可以准确定义导致任务失败的结果。为此,您首先需要注册任务的结果,然后您可以在failed_when.

逻辑听起来像:如果结果代码 != 0 并且输出中的“xxx”成功,否则失败。

那看起来像这样

- some: task
  register: myResult
  failed_when: myResult.rc == 0 or "xxx" not in myResult.stdout
Run Code Online (Sandbox Code Playgroud)

文档:控制定义失败的因素