-1

我有一个关于使用 Ansible 自动化网络节点的问题。

我想获取涉及vlan的网络节点的配置(实际上我只是想查看节点中使用的最后一个vlan,以便我可以自动创建下一个)。

当我登录到 Junos 路由器时,我编写了以下命令:

show configuration | display set | match interfaces | match ae0 | match description

我得到了 17 行配置,都涉及 vlan(最后一行是创建的最后一个 vlan)

我想我会junos_command为相同的命令使用模块,注册输出然后在 msg 中显示它(更大计划的第一部分)。

但事实证明,junos_command这只能让我使用show configuration2500 行配置。

有没有办法让junos_command我得到想要的输出,或者我应该只使用给定的输出,尝试以某种方式解析它?有什么建议么?

我看到的唯一缺点是获取和解析该输出需要时间,因为它会非常大,并且能够最小化输出将提高效率。

也许还有一些关于解析输出的建议?除了正则表达式过滤器还有其他方法吗?

4

1 回答 1

0

所以我的问题的答案是使用cli_commandmodule 而不是junos_command.

要记住的一件事是必须将连接设置为network_cliansible_connetion: network_cli并且ansible_network_os: junos<-您可以将它们放在任务变量中)

  tasks:
    - name: Gather router facts about the vlans
      vars:
        ansible_connection: network_cli
        ansible_network_os: junos
        router_interface_name: ae1
      cli_command:
        command: "show configuration | display set | match {{router_interface_name}} | match vlan"
      register: output
于 2019-08-02T08:50:41.873 回答