调试过程是开发一段软件代码的一个非常关键的部分。 Ansible 剧本也不例外。
为了在执行期间在终端输出上打印变量或消息,Ansible 提供了一个名为“debug”的模块。 对于开发剧本来说,这是一个非常有益的实用程序。 例如,它可以与“when:”指令一起使用,并且在执行期间不会中断 playbook。
我们将涵盖什么?
在本教程中,我们将了解 Ansible 中的“调试模块”。 我们还将了解各种用例。 让我们现在开始吧。
先决条件
要执行本教程中显示的示例,我们需要满足以下要求:
1. 你应该在控制器节点上安装了 Ansible(在我们的例子中是 Ubuntu 20.04)。
2.你应该对Ansible的目的是什么以及如何编写剧本有一个基本的了解(当然你需要知道剧本是什么)。
如果您只是 Ansible 世界的初学者,我们建议您首先了解 Vagrant 以及如何使用 Vagrant 设置基本的本地测试环境。 一旦设置了一个具有一个控制器节点和两个目标节点的基本实验室,您就可以执行本指南中的示例。
与调试模块一起使用的参数
该模块使用了几个参数:
1. msg:是字符串类型参数,打印自定义消息。
2. var:指定要调试的变量:“msg”和“var”互斥。
3. 详细程度:这仅设置调试操作运行之后的数字。 例如,如果设置为 2,则调试仅在指定“-vv”时运行。
调试模块的示例使用
1.打印一个简单的语句
在其最基本的用法中,调试模块可用于在输出中打印语句。 创建一个包含以下内容的剧本“debug-demo.yml”:
--- - name: Ansible debug module basic example hosts: web tasks: - name: Basic debug module message debug: msg: "LinuxHint Ansible"
要运行此 playbook 和任何后续 playbook,请使用以下格式:
$ ansible-playbook example.yml -i /path/to/inventory/file
2. 打印变量
除了在终端打印基本语句外,我们还可以使用“调试”模块打印变量的值。 在以下示例中,我们在“my_vars.yml”文件中设置一个变量,并使用调试模块的“msg”参数输出其值:
--- - hosts: web vars_files: - demo_vars.yml tasks: # Display "Variable ‘demo_var1’ is set to ‘demo_val1’". - debug: msg="Variable ‘demo_var1’ is set to {{ demo_var1 }}"
前面的剧本打印变量“demo_var1”的值以及“msg”参数中指定的消息。