📜  Ansible调试

📅  最后修改于: 2020-12-26 12:30:55             🧑  作者: Mango

Ansible调试

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