Ansible - 疑难解答
调试 Ansible playbook 的最常见策略是使用下面给出的模块 −
Debug 和 Register
这两个是 Ansible 中可用的模块。 出于调试目的,我们需要明智地使用这两个模块。 示例如下所示。
使用详细程度
使用 Ansible 命令,可以提供详细程度。 您可以使用详细级别一 (-v) 或二级 (-vv) 运行命令。
要点
在本节中,我们将通过几个例子来理解一些概念。
如果您没有引用以变量开头的参数。 例如,
vars: age_path: {{vivek.name}}/demo/ {{vivek.name}}
这会引发错误。
解决方案
vars:
age_path: "{{vivek.name}}/demo/" – marked in yellow is the fix.
How to use register -> Copy this code into a yml file say test.yml and run it
---
#Tsting
- hosts: tomcat-node
tasks:
- shell: /usr/bin/uptime
register: myvar
- name: Just debugging usage
debug: var = myvar
当我通过命令 Ansible-playbook -i hosts test.yml 运行此代码时,我得到如下所示的输出。
如果你看到 yaml ,我们已经将命令的输出注册到一个变量 - myvar 并打印输出。
标记为黄色的文本告诉我们变量 –myvar 的属性,可用于进一步的流量控制。 通过这种方式,我们可以了解特定变量所公开的属性。 以下调试命令对此有所帮助。
$ ansible-playbook -i hosts test.yml PLAY [tomcat-node] *************************************************************** **************** **************************************************************** *************** ****************************** TASK [Gathering Facts] ***************************************************************** ************** ***************************************************************** ************** ************************** Monday 05 February 2018 17:33:14 +0530 (0:00:00.051) 0:00:00.051 ******* ok: [server1] TASK [command] ****************************************************************** ************* ****************************************************************** ************* ********************************** Monday 05 February 2018 17:33:16 +0530 (0:00:01.697) 0:00:01.748 ******* changed: [server1] TASK [Just debugging usage] ****************************************************************** ************* ****************************************************************** ************* ********************* Monday 05 February 2018 17:33:16 +0530 (0:00:00.226) 0:00:01.974 ******* ok: [server1] => { "myvar": { "changed": true, "cmd": "/usr/bin/uptime", "delta": "0:00:00.011306", "end": "2018-02-05 17:33:16.424647", "rc": 0, "start": "2018-02-05 17:33:16.413341", "stderr": "", "stderr_lines": [], "stdout": " 17:33:16 up 7 days, 35 min, 1 user, load average: 0.18, 0.15, 0.14", "stdout_lines": [ " 17:33:16 up 7 days, 35 min, 1 user, load average: 0.18, 0.15, 0.14" ] } } PLAY RECAP **************************************************************************** ********************************************************************************** ************************************** server1 : ok = 3 changed = 1 unreachable = 0 failed = 0
常见的playbook问题
在本节中,我们将了解一些常见的playbook问题。 问题是 −
- 引用
- 缩进
Playbook 是用 yaml 格式编写的,以上两个是 yaml/playbook 中最常见的问题。
Yaml 不支持基于制表符的缩进,支持基于空格的缩进,所以需要注意这一点。
注意 − 编写完 yaml 后,打开此站点(https://editor.swagger.io/)并将 yaml 复制粘贴到左侧,以确保 yaml 正确编译。 这只是一个提示。
Swagger 对警告中的错误和错误进行限定。