如何在 ansible wait_for 模块中打印成功和失败的调试消息以测试防火墙。?
How to print debug message for success and failure in ansible wait_for module to test firewall.?
如何在 Ansible wait_for
模块中打印包含目标主机信息的成功和失败调试消息以测试防火墙?
- name: Check Firewall Connectivity
wait_for:
host: 10.200.12.2
port: 2041
state: started
delay: 0
timeout: 3
ignore_errors: yes
TL;DR;
这是您正在寻找的debug
:
- debug:
msg: "{{ 'Failed with message: ' ~ wait_result.msg if wait_result.failed else 'Success connecting to Firewall' }}"
您始终可以 register
Ansible 中的任务结果。
然后根据这个结果,你可以实际行动,或者打印一些东西。
我是这样处理它的:我从头到尾都不知道任务会给我什么样的结果,但我知道我可以 register
和 debug
它。
所以我制作了这个剧本:
- hosts: local
gather_facts: no
tasks:
- name: Check Firewall Connectivity
wait_for:
host: 10.200.12.2
port: 2041
state: started
delay: 0
timeout: 3
ignore_errors: yes
register: wait_result
- debug:
msg: "{{ wait_result }}"
它导致了这次回顾:
PLAY [local] *******************************************************************
TASK [Check Firewall Connectivity] *********************************************
fatal: [local]: FAILED! => {"changed": false, "elapsed": 3, "msg": "Timeout when waiting for 127.0.0.1:22"}
...ignoring
TASK [debug] *******************************************************************
ok: [local] => {
"msg": {
"changed": false,
"elapsed": 3,
"failed": true,
"msg": "Timeout when waiting for 127.0.0.1:22"
}
}
PLAY RECAP *********************************************************************
local : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
所以根据这次回顾,我知道我的结果有一个 属性 failed
如果 wait_for
任务失败,这将是 true
。
我什至因此 msg
失败。
所以现在,在 Jinja inline if expression 的帮助下,我可以创建这个任务:
- debug:
msg: "{{ 'Failed with message: ' ~ wait_result.msg if wait_result.failed else 'Success connecting to Firewall' }}"
这将导致重述:
TASK [debug] *******************************************************************
ok: [local] => {
"msg": "Success connecting to Firewall"
}
或回顾:
TASK [debug] *******************************************************************
ok: [local] => {
"msg": "Failed with message: Timeout when waiting for 10.200.12.2:2041"
}
如何在 Ansible wait_for
模块中打印包含目标主机信息的成功和失败调试消息以测试防火墙?
- name: Check Firewall Connectivity
wait_for:
host: 10.200.12.2
port: 2041
state: started
delay: 0
timeout: 3
ignore_errors: yes
TL;DR;
这是您正在寻找的debug
:
- debug:
msg: "{{ 'Failed with message: ' ~ wait_result.msg if wait_result.failed else 'Success connecting to Firewall' }}"
您始终可以 register
Ansible 中的任务结果。
然后根据这个结果,你可以实际行动,或者打印一些东西。
我是这样处理它的:我从头到尾都不知道任务会给我什么样的结果,但我知道我可以 register
和 debug
它。
所以我制作了这个剧本:
- hosts: local
gather_facts: no
tasks:
- name: Check Firewall Connectivity
wait_for:
host: 10.200.12.2
port: 2041
state: started
delay: 0
timeout: 3
ignore_errors: yes
register: wait_result
- debug:
msg: "{{ wait_result }}"
它导致了这次回顾:
PLAY [local] *******************************************************************
TASK [Check Firewall Connectivity] *********************************************
fatal: [local]: FAILED! => {"changed": false, "elapsed": 3, "msg": "Timeout when waiting for 127.0.0.1:22"}
...ignoring
TASK [debug] *******************************************************************
ok: [local] => {
"msg": {
"changed": false,
"elapsed": 3,
"failed": true,
"msg": "Timeout when waiting for 127.0.0.1:22"
}
}
PLAY RECAP *********************************************************************
local : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
所以根据这次回顾,我知道我的结果有一个 属性 failed
如果 wait_for
任务失败,这将是 true
。
我什至因此 msg
失败。
所以现在,在 Jinja inline if expression 的帮助下,我可以创建这个任务:
- debug:
msg: "{{ 'Failed with message: ' ~ wait_result.msg if wait_result.failed else 'Success connecting to Firewall' }}"
这将导致重述:
TASK [debug] *******************************************************************
ok: [local] => {
"msg": "Success connecting to Firewall"
}
或回顾:
TASK [debug] *******************************************************************
ok: [local] => {
"msg": "Failed with message: Timeout when waiting for 10.200.12.2:2041"
}