如何避免显示跳过的 Ansible 任务?

asd*_*ejr 15 ansible

我的剧本的输出总是被关于哪些任务被跳过的无用输出完全淹没,这使得浏览和查找我正在寻找的特定信息变得烦人且耗时。

这是一个剧本的例子

- name: Stopping Puppet Agent
  service: name=pe-puppet state=stopped
  ignore_errors: true
  register: result
- include: rollback/restart-pe-puppet.yml
  when: result|failed
Run Code Online (Sandbox Code Playgroud)

以及相关的输出:

TASK: [name | Stopping Puppet Agent] **************************************
<server.name> REMOTE_MODULE service name=pe-puppet state=stopped
changed: [server.name] => {"changed": true, "name": "pe-puppet",     "state":"stopped"}

TASK: [name | judge_log msg='Restarting pe-puppet'] ***********************
skipping: [server.name]

TASK: [name | starting pe-puppet] *****************************************
skipping: [server.name]

TASK: [name | judge_log msg='pe-puppet restart successful'] ***************
skipping: [sserver.name]

TASK: [name | judge_log msg='pe-puppet restart failed' sec=FATAL] *********
skipping: [server.name]

TASK: [name | fail msg="Failed to start pe-puppet."] **********************
skipping: [server.name]

TASK: [name | judge_log msg='{{APP_NAME | capitalize}} deployment failed.'] ***
skipping: [server.name]

TASK: [name | fail msg="The {{APP_NAME | capitalize}} deployment failed."] ***
skipping: [server.name]
Run Code Online (Sandbox Code Playgroud)

几乎所有这些输出对我来说都是无用的。该display_skipped_hosts说,它还是引起了任务标题出现。有没有办法完全省略跳过的任务?

小智 13

我使用另一种方式而不更改任何代码:

Ansible 使用 'default' 回调插件来显示输出,但您可以使用 'skippy' 回调插件代替 'default'。'skippy' 使用 'default' 除了跳过的任务。

要使用“跳过”插件,请在您的 ansible.cfg 文件中添加以下行(或取消注释):

stdout_callback = skippy
Run Code Online (Sandbox Code Playgroud)

要本地化 ansible.cfg,请使用命令:

ansible --version
Run Code Online (Sandbox Code Playgroud)

如果您没有此文件,请从 ansible 源获取示例文件并将其复制到您调用 ansible 的工作文件夹中。


小智 7

现在,该skippy模块已弃用。

ansible.cfg在项目的根目录下创建,并添加以下说明:

[defaults]
display_skipped_hosts = no
Run Code Online (Sandbox Code Playgroud)

您还可以编辑您的全局配置文件/etc/ansible/ansible.cfg