如何抑制 Ansible 中的 "Unsupported parameters" 错误?

How to suppress "Unsupported parameters" error in Ansible?

我在 assert module 中使用 quiet 参数来处理输出过于冗长的任务。 quiet 参数是在 Ansible 2.8 中引入的,但不幸的是,我的代码有时需要在 Debian Buster 上 运行,它仍然带有 Ansible 2.7。

在这种情况下,Ansible 会失败并出现致命错误“(断言)模块不支持的参数:安静”。由于这只是一个修饰参数,我希望 Ansible 2.7 忽略此参数并继续。

有没有办法在我的任务中添加此参数,以便 Ansible 2.8 既好又安静,但任务在 Ansible 2.7 中仍然 运行s?

- name: Silent assert
  assert:
    that:
      - true
    quiet: yes

有一个 omit filter 可以帮助绕过一些不适用的参数。为此,我们可以定义一个变量,对于 Ansible 2.8 或更高版本,该变量将设置为 true。那么这个变量可以结合omit.

传递给assert模块的quiet参数

示例:

  - set_fact:
      quiet_assert: true
    when: ansible_version.full is version('2.8', '>=')
  - assert:
      that:
      - true
      quiet: "{{ quiet_assert|default(omit) }}"