我正在尝试使用 textfsm 解析管理显示平台的数据,因为任何状态为“IOS XR RUN”、“READY”或“OK”的东西都会通过,其他任何东西都会报告失败。我正在使用 selectattr in 选项,但收到以下错误 - “msg”:“任务包含一个带有未定义变量的选项。错误是:'intf_tests_pass'未定义。任何想法为什么这会失败,因为 working_state 变量是定义。
名称:收集管理员显示平台信息 iosxr_command:命令:-管理员显示平台提供程序:“{{ cli }}”注册:platform_result 时间:device_os == 'cisco-ios-xr'
名称:检索要返回的状态 set_fact:working_state:['IOS XR RUN','READY','OK']
名称:解析 platform_result textfsm_parser:文件:templates_textfsm/{{ device_os }}/admin_show_platform.template 内容:“{{ platform_result.stdout.0 }}” 名称:platform_state 何时:
- platform_result.stdout 已定义
- platform_result.stdout[0] != 无
- platform_result.stdout[0] != ""
name: 识别通过 set_fact: platform_tests_pass: "{{ ansible_facts.platform_state | selectattr('STATE', 'in', 'working_state') | list }}" when: ansible_facts.platform_state 定义的平台结果
名称:识别失败的平台结果 set_fact:platform_tests_fail:“{{ ansible_facts.platform_state | difference(platform_tests_pass) | list}}” when: ansible_facts.platform_state 已定义
调试:味精:
- “{{ intf_tests_pass }}”
- “{{ intf_tests_fail }}”
谢谢,布赖恩