📜  Ansible-故障排除

📅  最后修改于: 2020-11-02 03:15:29             🧑  作者: Mango


调试Ansible剧本的最常见策略是使用以下给出的模块-

调试和注册

这两个是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以yaml格式编写,而以上两个是yaml / playbook中最常见的问题。

Yaml不支持基于制表符的缩进,而支持基于空格的缩进,因此需要注意相同的情况。

注意-完成yaml的编写后,打开此站点( https://editor.swagger.io/ ),然后将您的yaml复制粘贴到左侧,以确保yaml正确编译。这只是一个提示。

Swagger限定警告中的错误以及错误。