从Ansible中的junos列表中获取特定项目

从Ansible中的junos列表中获取特定项目,ansible,juniper,Ansible,Juniper,ansible版本:ansible 2.7.7 Juniper.junos2.1.0 我的问题是我有一个接口数组,我只想在其中找到物理接口(例如ge-0/0/0或ge-0/0/14或xe-0/0/3) 我试过了 msg:'{{inter.stdout_line | regex_search((ge)”)} msg:'{{inter.stdout_lines is search(“ge”)}' msg:'{{inter.stdout|line | search(“ge”)}}' Yaml文件: -

ansible版本:ansible 2.7.7
Juniper.junos2.1.0

我的问题是我有一个接口数组,我只想在其中找到物理接口(例如ge-0/0/0或ge-0/0/14或xe-0/0/3)

我试过了

msg:'{{inter.stdout_line | regex_search((ge)”)}

msg:'{{inter.stdout_lines is search(“ge”)}'

msg:'{{inter.stdout|line | search(“ge”)}}'

Yaml文件:

---
- name: Get device uptime
  hosts:
    - switches
    - all
  connection: local
  roles:
    - Juniper.junos
  gather_facts: no

  tasks:
    - name: Get uptime
      juniper_junos_command:
        commands:
          - show interfaces terse
      register: inter

    - name: test iner stdout_lines
      debug:
        msg: "{{inter.stdout_lines}}"

    - name: Print results
      debug:
        var: inter.stdout_lines
        msg: '{{inter | regex_search("(ge)") }}'
标准输出线的输出为: 我知道它会返回一些东西,所以我知道它不是空的。但是,我不确定inter.stdout\u行返回的是什么类型

TASK [test iner stdout_lines] ********************
ok: [192.168.10.254] => {
    "msg": [
        "",
        "Interface               Admin Link Proto    Local                 Remote",
        "ge-0/0/0                up    down",
        "ge-0/0/0.0              up    down eth-switch",
        "pfe-0/0/0               up    up",
        "pfe-0/0/0.16383         up    up   inet    ",
        "                                   inet6   ",
        "pfh-0/0/0               up    up",
        "pfh-0/0/0.16383         up    up   inet    ",
        "ge-0/0/1                up    down",
        "ge-0/0/1.0              up    down eth-switch",
        "ge-0/0/2                up    down",
        "ge-0/0/2.0              up    down eth-switch",
        "ge-0/0/3                up    down",
        "ge-0/0/3.0              up    down eth-switch",
        "ge-0/0/4                up    up",
        "ge-0/0/4.0              up    up   eth-switch",
        "ge-0/0/5                up    down",
        "ge-0/0/5.0              up    down eth-switch",
        "ge-0/0/6                up    down",
        "ge-0/0/6.0              up    down eth-switch",
        "ge-0/0/7                up    down",
        "ge-0/0/7.0              up    down eth-switch",
        "ge-0/0/8                up    down",
        "ge-0/0/8.0              up    down eth-switch",
        "ge-0/0/9                up    down",
        "ge-0/0/9.0              up    down eth-switch",
        "ge-0/0/10               up    down",
        "ge-0/0/10.0             up    down eth-switch",
        "ge-0/0/11               up    down",
        "ge-0/0/11.0             up    down eth-switch",
        "ge-0/0/12               up    down",
        "ge-0/0/12.0             up    down eth-switch",
        "ge-0/0/13               up    down",
        "ge-0/0/13.0             up    down eth-switch",
        "ge-0/0/14               up    down",
        "ge-0/0/14.0             up    down eth-switch",
        "ge-0/0/15               up    down",
        "ge-0/0/15.0             up    down eth-switch",
        "ge-0/0/16               up    down",
        "ge-0/0/16.0             up    down eth-switch",
        "ge-0/0/17               up    down",
        "ge-0/0/17.0             up    down eth-switch",
        "ge-0/0/18               up    down",
        "ge-0/0/18.0             up    down eth-switch",
        "ge-0/0/19               up    down",
        "ge-0/0/19.0             up    down eth-switch",
        "ge-0/0/20               up    down",
        "ge-0/0/20.0             up    down eth-switch",
        "ge-0/0/21               up    down",
        "ge-0/0/21.0             up    down eth-switch",
        "ge-0/0/22               up    down",
        "ge-0/0/22.0             up    down eth-switch",
        "ge-0/0/23               up    down",
        "ge-0/0/23.0             up    down inet     192.168.254.253/30",
        "bme0                    up    up",
        "bme0.0                  up    up   inet     128.0.0.1/2     ",
        "                                            128.0.0.4/2     ",
        "                                            128.0.0.16/2    ",
        "                                            128.0.0.63/2    ",
        "cbp0                    up    up",
        "dsc                     up    up",
        "esi                     up    up",
        "gre                     up    up",
        "ipip                    up    up",
        "irb                     up    up",
        "irb.0                   up    down",
        "irb.3                   up    down inet     192.168.3.254/24 ",
        "irb.10                  up    up   inet     192.168.10.254/24",
        "irb.11                  up    down inet     192.168.11.254/24",
        "irb.12                  up    down inet     192.168.12.254/24",
        "irb.13                  up    up   inet     192.168.13.254/24",
        "irb.14                  up    down inet     192.168.14.254/24",
        "irb.23                  up    down inet     192.168.23.254/24",
        "irb.88                  up    down inet     192.168.88.254/24",
        "jsrv                    up    up",
        "jsrv.1                  up    up   inet     128.0.0.127/2   ",
        "lo0                     up    up",
        "lo0.16385               up    up   inet    ",
        "lsi                     up    up",
        "me0                     up    down",
        "me0.0                   up    down eth-switch",
        "mtun                    up    up",
        "pimd                    up    up",
        "pime                    up    up",
        "pip0                    up    up",
        "tap                     up    up",
        "vme                     up    down",
        "vme.0                   up    down",
        "vtep                    up    up"
    ]
}
当任务
打印结果
运行时,它返回一个错误:
从这里我可以看出,这个错误要么是空变量,要么是错误的类型,但我不知道如何更改数组的类型

TASK [Print results] ******************
fatal: [192.168.10.254]: FAILED! => {"msg": "Unexpected templating type error occurred on ({{inter | regex_search(\"(ge)\") }}): expected string or buffer"}
当预期输出类似于

        "ge-0/0/1.0              up    down eth-switch",
        "ge-0/0/2                up    down",
        "ge-0/0/2.0              up    down eth-switch",
        "ge-0/0/3                up    down",
        "ge-0/0/3.0              up    down eth-switch",
        "ge-0/0/4                up    up",
        "ge-0/0/4.0              up    up   eth-switch",
        "ge-0/0/5                up    down",
        "ge-0/0/5.0              up    down eth-switch",
        "ge-0/0/6                up    down",
        "ge-0/0/6.0              up    down eth-switch",
        "ge-0/0/7                up    down",
        "ge-0/0/7.0              up    down eth-switch",
        "ge-0/0/8                up    down",
        "ge-0/0/8.0              up    down eth-switch",
        "ge-0/0/9                up    down",
        "ge-0/0/9.0              up    down eth-switch",
        "ge-0/0/10               up    down",
        "ge-0/0/10.0             up    down eth-switch",
        "ge-0/0/11               up    down",
        "ge-0/0/11.0             up    down eth-switch",
        "ge-0/0/12               up    down",
        "ge-0/0/12.0             up    down eth-switch",
        "ge-0/0/13               up    down",
        "ge-0/0/13.0             up    down eth-switch",
        "ge-0/0/14               up    down",
        "ge-0/0/14.0             up    down eth-switch",
        "ge-0/0/15               up    down",
        "ge-0/0/15.0             up    down eth-switch",
        "ge-0/0/16               up    down",
        "ge-0/0/16.0             up    down eth-switch",
        "ge-0/0/17               up    down",
        "ge-0/0/17.0             up    down eth-switch",
        "ge-0/0/18               up    down",
        "ge-0/0/18.0             up    down eth-switch",
        "ge-0/0/19               up    down",
        "ge-0/0/19.0             up    down eth-switch",
        "ge-0/0/20               up    down",
        "ge-0/0/20.0             up    down eth-switch",
        "ge-0/0/21               up    down",
        "ge-0/0/21.0             up    down eth-switch",
        "ge-0/0/22               up    down",
        "ge-0/0/22.0             up    down eth-switch",
        "ge-0/0/23               up    down",
        "ge-0/0/23.0             up    down inet     10.152.254.253/30",
如果它只包含没有.0


请提供任何帮助。

这是您要查找的代码吗

- debug:
    msg: "{{ item.split(' ')[0] }}"
  loop: "{{ inter.stdout_lines }}"
  when: item | regex_search('(^ge)')

谢谢你,这绝对是朝着正确的方向迈出的一步。