我正在通过SNMP收集事实,但是如果在一个OID响应中找不到一个字符串,我想触发一个失败。
下面是我的剧本。但是我无法触发它。
注意:我正在使用Ansible 2.8.3
triggerModal = () => {
this.setState({modalVisible: !this.state.modalVisible});
}
答案 0 :(得分:0)
通过阅读Ansible When文档,我建议从您的{{
子句中删除}}
和when:
:
when: 'Xisco NX-OS' not in ansible_sysdescr
如果这还不够,请尝试使用debug:
键上的ansible_sysdescr
模块,以目视检查是否存在该确切短语。
答案 1 :(得分:0)
问题只取决于更改后的状态更改时才触发的处理程序。由于snmp事实,因此不进行更改就不会触发。
答案 2 :(得分:0)
模块snmp_facts
未报告changed: true
。注册并查看result
。
tasks:
- name: "TASK 1: GATHER FACTS VIA SNMP"
snmp_facts:
host: "{{ ansible_host }}"
...
register: result
- debug:
var: result
调试给出
"result": {
"ansible_facts": {
...
"changed": false,
"failed": false
}
}
"changed": false
是未触发处理程序的原因。如果您想测试ansible_sysdescr
,只需将其作为剧本中的下一个任务
- fail:
msg: parse err
when: ansible_sysdescr is not search('Xisco NX-OS')