首页 > 解决方案 > 如何在调试模块中省略默认消息

问题描述

  - name:
    debug: 
    with_items: "{{ result.stdout }}"
TASK [pvc_precheck : check_rpm_versionlock warning message] ********************
skipping: [ip]
 {
    "msg": "Hello world!"
}

不知何故遇到了这个测试用例。在这里,当我在 Ansible 中运行此代码时,得到了输出但默认消息也在打印"Hello world!"
我如何省略此默认消息,我也不想要任何自定义消息,只需执行它就足够了。

标签: debuggingmoduleansible

解决方案


问:也不想要任何自定义消息。执行就足够了。

A:如果“只执行就足够了”,请使用meta:noop例如下面的任务只是默默地什么都不做

    - meta: noop

笔记

1.模块调试不需要参数

无法使调试不显示任何内容。这没有任何意义。当您不想看到任何内容时,为什么要运行调试?没有参数是强制性的。msg默认为"Hello world!"var默认为0例如

    - debug:

  msg: Hello world!

2.条件

如果您想跳过debug(消除消息),请使用条件,例如

    - debug:
        msg: "{{ result.stdout }}"
      when: debug_enable|default(false)|bool

3.未定义的变量

如果变量可能未定义,则可以跳过任务,例如

    - debug:
        msg: "{{ result.stdout }}"
      when: result.stdout is defined

,或显示默认值,例如

    - debug:
        msg: "{{ result.stdout|default('NOT DEFINED') }}"

推荐阅读