Ansible“调试”模块

调试过程是开发一段软件代码的一个非常关键的部分。 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”参数中指定的消息。