ansible小结(十 三)playbook中使用debug模块
平时我们在使用ansible编写playbook时,经常会遇到错误,很多时候有不知道问题在哪里 。这个时候可以使用-vvv参数打印出来详细信息,不过很多时候-vvv参数里很多东西并不是我们想要的,这时候就可以使用官方提供的debug模块来查找问题出现在哪里。
playbook示例
1# verbosity(added in 2.1),如果使用的的该本低于该版本,使用时会报错
2- name: debug test one host
3 hosts: 200.200.6.53
4 tasks:
5 - debug:
6 msg: "System {{ inventory_hostname }} has uuid {{ ansible_product_uuid }}"
7 - debug:
8 msg: "System {{ inventory_hostname }} has gateway {{ ansible_default_ipv4.gateway }}"
9 when: ansible_default_ipv4.gateway is defined
10 - shell: /usr/bin/uptime
11 register: result
12 - debug:
13 var: result
14 verbosity: 4
15 - name: Display all variables/facts known for a host
16 debug:
17 var: hostvars[inventory_hostname]
18 verbosity: 2
上面我们写了一个playbook,基本就是按照官方的示例做了一点修改。通过该示例,我们可以输出setup模块里引用的几个fact项的值,也可以输出定义的一个变量result---其内容为uptime命令执行的结果 。
执行结果
点击图片可以看大图 。
从上面的执行结果来看,发现在获取变量的时候出错了,这是因为我使用的ansible版本比较老导致的,verbosity参数是从ansible 2.1版本之后加入的一个参数,该变量对应的值当大于等于3时,将显示详细信息 。升级了版本后,uptime部分执行结果如下:
1TASK [debug] *******************************************************************
2ok: [200.200.6.53] => {
3 "result": {
4 "changed": true,
5 "cmd": "/usr/bin/uptime",
6 "delta": "0:00:00.020206",
7 "end": "2016-07-09 17:27:58.793521",
8 "rc": 0,
9 "start": "2016-07-09 17:27:58.773315",
10 "stderr": "",
11 "stdout": " 17:27:58 up 69 days, 1:54, 1 user, load average: 0.03, 0.02, 0.05",
12 "stdout_lines": [
13 " 17:27:58 up 69 days, 1:54, 1 user, load average: 0.03, 0.02, 0.05"
14 ],
15 "warnings": []
16 }
17}
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/ansible-playbook-debug/5481.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.