📅  最后修改于: 2020-12-26 12:30:55             🧑  作者: Mango
Ansible提供了调试模块选项,使任务更易于管理。它是找出问题区域的便捷工具。
Ansible 2.1版使用详细信息参数扩展了调试模块,该参数将其从print行转换为详细信息。
例如:创建剧本1_debug_example.yml ,例如:
---
- name: Debug Example Uptime
hosts: localhost
connection: local
tasks:
- name: Find Uptime
shell: /usr/bin/uptime
register: result
- name: Print debug message
debug:
var: result
verbosity: 2
在Ansible剧本调试期间,了解如何显示已注册的变量或宿主事实非常有用。
要print来自Ansible剧本的消息以及变量的值,我们可以使用Ansible调试模块。 Ansible调试模块易于使用。
例如:让我们执行一个简单的hello world剧本2_debug_example.yml ,例如:
---
- name: Debug Example - Hello World
hosts: localhost
tasks:
- name: Print debug message
debug:
Ansible在策略插件中包含调试器。该调试器使您可以将调试作为任务进行。您可以在任务的上下文中访问调试器的所有功能。您可以检查或设置变量的值,更新模块参数,并使用新的变量和参数重新运行任务以解决失败的原因。
有很多方法可以调用调试器,例如:
使用调试器关键字
debugger关键字可以在您提供名称属性的任何块上使用,例如角色,块,任务或角色。
debugger关键字接受多个值,例如:
始终:始终调用调试器,而不管结果如何。
从不:无论结果如何,从不调用调试器。
On_failed:仅在任务失败时才调用调试器。
On_unreachable:仅在主机不可访问时才调用调试器。
On_skipped:仅在跳过任务时才调用调试器。
注意:这些选项将覆盖任何全局配置以启用或禁用调试器。
在任务上
- name: Execute a command
command: false
debugger: on_failed
在玩
- name: Play
hosts: all
debugger: on_skipped
tasks:
- name: Execute a command
command: true
when: False
如果在一般级别(更具体的级别)提供,则更具体的情况为赢:
- name: Play
hosts: all
debugger: never
tasks:
- name: Execute a command
command: false
debugger: on_failed