Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

将 Ansible 与 Junos PyEZ 表配合使用,从 Junos 设备检索操作信息

模块概述

Junos PyEZ 操作 (op) 表提供了一种从复杂操作命令输出中提取信息的简单而有效的方法。瞻博网络提供了 Ansible 模块,使您能够在 Ansible 操作手册中利用 Junos PyEZ 操作表。 表 1 概述了这些模块。

表 1:Junos PyEZ 表模块

内容集

模块名称

juniper.device 收集

table

Juniper.junos 角色

juniper_junos_table

注意:

从版本 2.0.0 开始 Juniper.junos ,该 juniper_junos_table 模块将替换模块 junos_get_table 的功能。

注意:

这些模块不适用于配置表和视图。

了解 Junos PyEZ 表

Junos PyEZ 是一个适用于 Python 的微框架,可用于管理和自动化 Junos 设备。Junos PyEZ 支持使用简单的 YAML 定义(称为 视图)从 Junos 设备检索和过滤操作命令输出和配置数据。

Junos PyEZ 操作 (op) 表从操作命令或 RPC 的输出中提取信息。Junos PyEZ jnpr.junos.op 模块包含一些常见 RPC 的预定义表和视图定义。您还可以创建自定义表和视图。

使用 Ansible 管理 Junos 设备时, tablejuniper_junos_table 模块可以使用 Junos PyEZ 表从设备检索数据。这些模块可以引用 Junos PyEZ 发行版中包含的预定义操作表和视图,也可以引用驻留在 Ansible 控制节点上的用户定义的表和视图。

有关 Junos PyEZ 表和视图的一般信息,请参阅《 Junos PyEZ 开发人员指南》中的以下章节和相关文档:

如何将瞻博网络 Ansible 模块与 Junos PyEZ 表配合使用

tablejuniper_junos_table模块可以包含以下参数来指定要使用的表:

  • file- 定义 Junos PyEZ 表和视图的 YAML 文件的文件名。

  • path—(可选)包含具有表和视图定义的 YAML 文件的目录的路径。默认文件路径是预定义的 Junos PyEZ 操作表的位置,这些表位于 jnpr/junos/op 目录下的 Junos PyEZ 安装路径中。

  • table—(可选)将用于检索数据的表的名称。仅当文件包含多个表定义或文件包含名称中不包含“Table”的单个表时,才需要此选项。

例如,以下任务使用名为 FPCTable的自定义表检索数据,该表在 playbook 目录中的 fpc.yaml 文件中定义:

模块的响应包括 resource 键,该键包含表返回的项目列表。每个列表项都是一个字典,其中包含 View 定义的字段名称以及从每个相应字段的数据中提取的值。

请考虑以下预定义的表和视图,ArpTable以及 ArpViewJunos PyEZ 发行版arp.yml文件中的 ArpTable 。 使用<no-resolve/>选项执行 <get-arp-table-information> RPC,该选项等效于 show arp no-resolve CLI 命令。相应的视图提取响应中每个<arp-table-entry>项目的 MAC 地址、IP 地址和接口名称。

以下 Ansible 操作指南将执行该 table 模块,该模块用于 ArpTable 从 Junos 设备检索地址解析协议 (ARP) 信息。由于包含在 Junos PyEZ 发行版中,并且驻留在预定义的 Junos PyEZ 操作表的默认目录中,因此 ArpTable 不需要模块参数来 path 指定文件位置。此外,由于是文件中定义的唯一表,并且其名称中包含“Table”,因此 ArpTable 不需要参数 table 来指定表。

为简洁起见,剧本输出被截断,其中包含设备返回的每个 <arp-table-entry> 项目的相应字段(由视图定义)。

以下 Ansible 操作手册利用预定义的 Junos PyEZ 操作表来 OspfInterfaceTable 检索有关 Junos 设备上的 OSPF 接口的信息。 ospf.yml 文件定义了多个表和视图,因此模块调用包含 table 用于指定要使用的表的参数。

指定 RPC 参数

Junos PyEZ 操作表有一个可选 args 键,用于定义该表执行的 RPC 的默认命令选项和参数。应用程序使用默认选项执行 RPC,除非用户重写默认值。在 Junos PyEZ 应用程序中,可以在调用 get() 方法时覆盖默认命令选项或将其他选项和参数传递给 RPC。

tablejuniper_junos_table模块还使您能够重写表中定义的默认命令选项,或使用参数将kwargs其他选项和参数传递给 RPC。该kwargs值是命令选项和值的字典,RPC 和执行 RPC 的设备必须支持这些选项和值。

例如,ethport.yml文件中预定义的 Junos PyEZ 操作表EthPortTable使用<get-interface-information>命令选项执行 RPCmedia,并返回与接口名称的给定正则表达式匹配的所有接口的信息。

以下 Ansible 操作手册用于 EthPortTable 提取有关 Junos 设备上接口的信息。该 kwargs 参数包括 interface_name: "ge-1/0/0",它将覆盖 EthPortTableinterface_name 默认值,并指示模块仅检索 ge-1/0/0 接口的请求字段。

有关 Junos PyEZ 表中默认和用户提供的命令选项和参数的详细信息,请参阅 定义 Junos PyEZ 操作表 和使用 Junos PyEZ 操作表和视图

更改历史记录表

功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。

释放
描述
2.0.0
从版本 2.0.0 开始 Juniper.junos ,该 juniper_junos_table 模块将替换模块 junos_get_table 的功能。