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


14

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

这是一本剧本的例子

- name: Stopping Puppet Agent
  service: name=pe-puppet state=stopped
  ignore_errors: true
  register: result
- include: rollback/restart-pe-puppet.yml
  when: result|failed

和相关的输出:

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]

几乎所有这些输出对我来说都是无用的。该display_skipped_hosts说仍然导致任务标题出现。有什么办法可以完全省略跳过的任务?


如果您满意编辑Ansible代码,则可以尝试msg = ''此行
masegaloeh 2015年

Answers:


13

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

可以使用“默认”回调插件显示输出,但是您可以使用“跳过”回调插件代替“默认”。除跳过的任务外,“略过”使用“默认”。

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

stdout_callback = skippy

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

ansible --version

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


4

现在,该skippy模块已弃用。

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

[defaults]
display_skipped_hosts = no

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


2

如果文档说标题仍然出现,那么除非您通过编辑代码来更改ansible行为,否则您将无法避免该标题。如果您仍然坚持对其进行编辑,则可以尝试查找文件lib/ansible/callbacks.py并添加此行字符串

msg = ''

这行之前

display(msg, color='cyan', runner=self.runner)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.