【问题标题】:How to suppress "Unsupported parameters" error in Ansible?如何抑制 Ansible 中的“不支持的参数”错误?
【发布时间】:2021-04-30 19:12:42
【问题描述】:

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

在这种情况下,Ansible 会失败并出现致命错误“Unsupported parameters for (assert) module: quiet”。由于这只是一个装饰性参数,我希望 Ansible 2.7 忽略此参数并继续。

有没有办法在我的任务中添加这个参数,这样 Ansible 2.8 又好又安静,但任务仍然在 Ansible 2.7 中运行?

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

【问题讨论】:

    标签: ansible backwards-compatibility


    【解决方案1】:

    有一个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) }}"
    

    【讨论】:

    • 谢谢,我没想到omit。非常感激。对于那些喜欢(不可读的)单行文字的人,这也有效,无需单独的set_factquiet: "{{ ansible_version.full is version('2.8', '>=') | ternary(true, omit) }}"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2019-07-06
    相关资源
    最近更新 更多