首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当字符串不在变量中时,触发器失败。

当字符串不在变量中时,触发器失败。
EN

Stack Overflow用户
提问于 2019-07-30 18:23:05
回答 3查看 1.1K关注 0票数 1

我正在通过SNMP收集事实,但是如果在OID响应中找不到字符串,我希望触发失败。

下面是我的剧本。但我不能让它触发。

注:我在使用Ansible 2.8.3

代码语言:javascript
复制
 tasks:
    - name: "TASK 1: GATHER FACTS VIA SNMP"
      snmp_facts:
        host: "{{ ansible_host }}"
        version: v3
        level: authPriv
        integrity: sha
        privacy: aes
        username: "{{ item.user }}"
        authkey: "{{ item.pwd }}"
        privkey: "{{ item.privacy }}"
      with_items: "{{ snmp_users }}"
      delegate_to: localhost
      notify: snmp_facts_collected

    - debug:
        msg: "SNMP System Name: {{ ansible_sysname }} SNMP OID: {{ ansible_sysobjectid }} ansible_sysdescr {{ ansible_sysdescr }} "

  handlers:
    - name: "HANDLER 1: Check SNMP Response"
      listen: snmp_facts_collected
      fail:
        msg: parse err
      when: "{{ 'Xisco NX-OS' not in ansible_sysdescr }}"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-14 16:56:15

模块snmp_facts不报告changed: true。注册并查看result

代码语言:javascript
复制
tasks:
    - name: "TASK 1: GATHER FACTS VIA SNMP"
      snmp_facts:
        host: "{{ ansible_host }}"
        ...
      register: result
    - debug:
        var: result

调试给出

代码语言:javascript
复制
    "result": {
        "ansible_facts": {
         ...
        "changed": false, 
        "failed": false
    }
}

"changed": false是处理程序未被触发的原因。如果你想测试ansible_sysdescr,就把它作为剧本中的下一个任务

代码语言:javascript
复制
  - fail:
      msg: parse err
    when: ansible_sysdescr is not search('Xisco NX-OS')
票数 0
EN

Stack Overflow用户

发布于 2019-07-31 09:04:06

在阅读Ansible 什么时候文档时,我建议从when:子句中删除{{ & }}

代码语言:javascript
复制
when: 'Xisco NX-OS' not in ansible_sysdescr

如果这还不够,请尝试debug:模块在ansible_sysdescr键上,以直观地检查是否存在这个确切的短语。

票数 0
EN

Stack Overflow用户

发布于 2019-07-31 09:07:32

问题的原因是只有在更改状态时才触发处理程序。由于snmp事实,没有对其进行更改,因此不会触发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57277894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档