我的剧本的输出总是被无用的输出所完全淹没,哪些任务被跳过了,这使得烦人和耗费时间去查找我正在寻找的特定信息。
这是一个剧本的例子
- 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使用“默认”callback插件来显示输出,但是可以使用“skippy”callback插件而不是“默认”。 除了跳过的任务外,“skippy”使用“默认”。
要使用“跳过”插件,请在ansible.cfg文件中添加以下行(或取消注释):
stdout_callback = skippy
要将您的ansible.cfg本地化,请使用命令:
ansible --version
如果你没有这个文件,从源文件中获取示例文件,并将其复制到你的工作文件夹中。
如果文档显示标题仍然出现,那么除非通过编辑代码来更改正确的行为,否则无法避免。 如果你仍然坚持编辑它,那么你可以尝试find文件lib/ansible/callbacks.py并添加这行string
msg = ''
在这一行之前
display(msg, color='cyan', runner=self.runner)